我有一个模型,其中包含一个多选和一个文本框。依赖验证在淘汰赛不起作用
我想验证显示,如果他们没有填充,但没有验证错误,如果至少其中一个填充。 (选中的一个项目点击或某些文本)。
我有一个工作plunkr这里: plnkr.co/edit/pwKohFTmLPW1BKNwHxWR?p=preview
我尝试成千上万的东西,但没有成功。 其核心的问题是,self.isValid()
不会触发验证功能SubscribersOrEmails
目前我有这样的:
var ReportSchedule = function() {
self.Subscribers = ko.observableArray().extend({ required: { onlyIf: function() { return self.SubscribersOrEmails === 0; } } });
self.Emails = ko.observableArray().extend({ required: { onlyIf: function() { return self.SubscribersOrEmails === 0; } } });
self.EmailText = ko.observable();
self.SubscribersOrEmails = ko.computed(function() {
var counter = 0;
if (self.Emails != null && self.Subscribers != null) {
counter = self.Emails().length + self.Subscribers().length;
}
console.log("counter: " + counter);
return counter;
});
}
我想自定义验证,并在阳光下每一个组合。
任何想法接下来要尝试什么?
我使用淘汰赛V3.2.0-β
{onlyIf:function(){return self.SubscribersOrEmails === 0; } 你必须调用带括号的observable self.SubscribersOrEmails() –
我很确定这是不正确的计算函数。我在网上找到的例子不需要括号。如果我添加括号,你会得到:self.SubscribersOrEmails不是函数 – Nick
ko.pureComputed不是函数 我认为这是一个不同的淘汰赛版本。但我尝试了一种不起作用的类似方法 – Nick