如何创建一个敲除验证组,该组仅验证模型的某些属性,而不是所有属性。
例如,我有一堆可观察的模型,我想要两个不同的验证组。作为下面的一个简单示例,我希望能够从后两个属性中单独验证前两个属性。
此方案对于验证向导步骤是必要的,其中每个向导步骤中的所有可观察对象都位于一个模型中。
var mymodel = function() {
var self = this;
self.companyName = ko.observable().extend({ required: true });
self.contactPerson = ko.observable().extend({ required: true });
self.companyName2= ko.observable().extend({ required: true });
self.contactPerson2 = ko.observable().extend({ required: true });
// self.validationGroup1
// self.validationGroup2
};
答案 0 :(得分:1)
如果要构建向导,则应为每个步骤使用viewmodel。 Knockout-validation提供validatedObservable来知道你的所有viewmodel是否有效,并且在淘汰赛中你可以拥有父视图模型,这样你就可以编写类似这样的内容。
var mymodel = function() {
var self = this;
self.step1 = ko.validatedObservable({
companyName: ko.observable().extend({ required: true });
contactPerson: ko.observable().extend({ required: true });
});
self.step2 = ko.validatedObservable({
companyName: ko.observable().extend({ required: true });
contactPerson: ko.observable().extend({ required: true });
});
};
要知道任何步骤是否有效,请使用
self.step1.isValid();
要访问您可以使用的任何属性
self.step1().companyName() ==> value