Reputation: 2415
I would like to ask you can I add knockout validation to a whole model, not to each property. I create a view model using this code:
var UserViewModel = function() {
return @Html.Raw(Json.Encode(Model.UserViewModel));
};
var entry = ko.mapping.fromJS(new UserViewModel());
Now, can I extend this view model by adding validation rules ? For example:
entry.extend('propertyName', rules...)
Upvotes: 0
Views: 274
Reputation: 17564
You can use the mapping plugin to create observables for you like
var UserViewModel = function(data) {
ko.mapping(data, {}, this);
};
Then you can create validation dynamicly like
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 });
}
}
}
};
Upvotes: 1