2013-10-16 51 views
0

我想问您可以将敲除验证添加到整个模型中,而不是添加到每个属性中。我使用此代码创建视图模型:在现有视图模型上进行基因敲除验证

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

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

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

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

回答

1

您可以使用映射插件创建观测为你喜欢

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/