KnockoutJS 验证 - 嵌套的 ViewModel 作为 validatedobservable
KnockoutJS Validation - nested ViewModel as validatedobservable
我有一个 KnockoutJS 视图模型,它充当多个模块化视图模型的 "master" 视图模型。这些模块化虚拟机利用敲除验证属性来进行自己的表单验证。我想在主视图模型中制作这些视图模型 validatedObservable
,所以如果 isValid
为真,我可以简单地检查每个视图模型:
function MasterViewModel() {
var self = this;
self.addUserViewModel = ko.validatedObservable(new AddUserViewModel());
}
function AddUserViewModel() {
var self = this;
self.username = ko.observable().extend({ required: true });
self.addUser = = function () {
if(self.isValid()) {
// Perform add user logic here
}
}.bind(self);
}
但是,当我尝试调用子视图模型时,isValid
方法不存在。添加作为函数的 validatedObservable
属性 是否有问题?
isValid
由函数 validatedObservable
添加,因此只能在 MasterViewModel
.
中使用
当你想检查模型在模型本身内部是否有效时,你可以使用 ko.validation.group
:
function AddUserViewModel() {
var self = this;
self.username = ko.observable().extend({ required: true });
var errors = ko.validation.group(self, { deep: true });
self.addUser = = function () {
if (!errors().length) {
// Perform add user logic here
}
};
}
我有一个 KnockoutJS 视图模型,它充当多个模块化视图模型的 "master" 视图模型。这些模块化虚拟机利用敲除验证属性来进行自己的表单验证。我想在主视图模型中制作这些视图模型 validatedObservable
,所以如果 isValid
为真,我可以简单地检查每个视图模型:
function MasterViewModel() {
var self = this;
self.addUserViewModel = ko.validatedObservable(new AddUserViewModel());
}
function AddUserViewModel() {
var self = this;
self.username = ko.observable().extend({ required: true });
self.addUser = = function () {
if(self.isValid()) {
// Perform add user logic here
}
}.bind(self);
}
但是,当我尝试调用子视图模型时,isValid
方法不存在。添加作为函数的 validatedObservable
属性 是否有问题?
isValid
由函数 validatedObservable
添加,因此只能在 MasterViewModel
.
当你想检查模型在模型本身内部是否有效时,你可以使用 ko.validation.group
:
function AddUserViewModel() {
var self = this;
self.username = ko.observable().extend({ required: true });
var errors = ko.validation.group(self, { deep: true });
self.addUser = = function () {
if (!errors().length) {
// Perform add user logic here
}
};
}