다중 선택 및 텍스트 상자가 포함 된 모델이 있습니다.녹아웃의 종속성 확인이 작동하지 않습니다.
아무 것도 입력되지 않은 경우 유효성을 검사하지만 적어도 하나가 채워지면 유효성 검사 오류가 나타나지 않도록하고 싶습니다. (클릭 한 항목 중 하나의 항목 또는 일부 텍스트). 내가 성공하지 가지의 수천을 시도 plnkr.co/edit/pwKohFTmLPW1BKNwHxWR?p=preview
:
은 여기 작업 plunkr 있습니다. 의 핵심 문제는 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