Knockout.js 动态viewmodel的敲除验证
我正在动态创建knockout viewmodel,这段代码运行良好。我想在此viewmodel中添加验证。我可以在此viewmodel中添加验证吗?这是一种好方法,还是应该自己创建viewmodel并添加验证属性?或者是否有任何客户端验证与数据注释一起工作Knockout.js 动态viewmodel的敲除验证,knockout.js,data-annotations,knockout-mapping-plugin,knockout-validation,Knockout.js,Data Annotations,Knockout Mapping Plugin,Knockout Validation,我正在动态创建knockout viewmodel,这段代码运行良好。我想在此viewmodel中添加验证。我可以在此viewmodel中添加验证吗?这是一种好方法,还是应该自己创建viewmodel并添加验证属性?或者是否有任何客户端验证与数据注释一起工作 var viewModel = function () { var self = this; self.States =ko.observableArray(); self.Countrie
var viewModel = function () {
var self = this;
self.States =ko.observableArray();
self.Countries =ko.observableArray();
self.showStates = ko.observable(false);
self.saveData = function (self) { //save data function };
}
var VM= new viewModel();
$.ajax({
success: function(data)
{
var newVM = ko.mapping.fromJS(data, {}, VM);
// newVM.FirstName, newVM.LastName
// I want to add validation in this newVM
}
由于您正在使用KO映射插件加载数据,因此如果需要,您还可以选择挂接到“create”事件中并添加单个项的验证。例如:
$.ajax({
success: function(data)
{
var mappingOption = {
'FirstName': {
create: function (option) {
return ko.observable(option.data).extend({ required: true });
}
},
'LastName': {
create: function (option) {
return ko.observable(option.data).extend({ required: true });
}
}
}
// Now load your viewModel with the mapping option you just specified
var newVM = ko.utils.arrayMap(data, function (item) {
return ko.mapping.fromJS(item, mappingOption);
});
// ... From now on... in your newVM... firstName and lastName will be 'required'
}
希望这有帮助
谢谢