0

我想问你我可以将淘汰赛验证添加到整个模型,而不是每个属性。我使用以下代码创建了一个视图模型:

    var UserViewModel = function() {
        return @Html.Raw(Json.Encode(Model.UserViewModel));
    };

   var entry = ko.mapping.fromJS(new UserViewModel());

现在,我可以通过添加验证规则来扩展这个视图模型吗?例如:

entry.extend('propertyName', rules...)
4

1 回答 1

1

您可以使用映射插件为您创建 observables

var UserViewModel = function(data) {
        ko.mapping(data, {}, this);
};

然后你可以像动态地创建验证

function addValidation(vm) {
   for(var index in vm) {
      var member = vm[index];
       if(ko.isObservable(member) && !ko.isComputed(member)) {
           member.extend({ required: true });

           if(typeof member() === "number") {
               member.extend({ number: true });
           }
       }
   }
};

http://jsfiddle.net/CfKmw/1/

于 2013-10-17T07:17:10.293 回答