0

knockout-validation 프레임 워크를 사용하여 viewModel의 유효성을 검사합니다.Knockout-Validation의 계산 된 속성에서 관찰 가능한 속성 값을 얻는 방법

나는 다음과 같은 정의 된 뷰 모델이 있습니다

ko.validation.init({ 
    decorateElement:true, 
    errorElementClass: 'invalid', 
    insertMessages: false 
}); 

var viewModel = ko.validatedObservable({ 
    propety1: ko.observable().extend({ required: true }), 
    propety2: ko.computed(function() { 
     return this.propety1(); 
    }, this), 
    form_onsubmit: function(form) { 
     console.log(this.propety1()); 
     return false; 
    } 
}); 


$(function() { 
    ko.applyBindings(viewModel); 
}); 

이는 form_onsubmit 함수의 속성 1의 값을 얻을 수 있지만, 계산 된 재산 "property2"에서 작동하지 does't.

해결 방법, 감사합니다 !!!!!!!!! 객체 리터럴을 사용하는 경우

답변

1

당신은 별도로 계산 속성을 정의해야합니다

var viewModel = ko.validatedObservable({ 
    propety1: ko.observable().extend({ required: true }),  
    form_onsubmit: function(form) { 
     console.log(this.propety1()); 
     return false; 
    } 
}); 
viewModel().propety2 = ko.computed(function() { 
     return this.propety1(); 
}, viewModel()); 

간단히 두 번째 인수로 this 통과는 글로벌 윈도우 객체가 아닌 자체 리터럴 객체를 참조하기 때문에 충분하지 않습니다.