我有一個模型,其中包含一個多選和一個文本框。依賴驗證在淘汰賽不起作用
我想驗證顯示,如果他們沒有填充,但沒有驗證錯誤,如果至少其中一個填充。 (選中的一個項目點擊或某些文本)。
我有一個工作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