ASP MVC4의 녹아웃 프레임 워크를 사용하여 국가의 드롭 다운 목록을 만들려고합니다. 유효성 확인 요구 사항은 매우 간단합니다. 통제가 유효화되기 전에 국가를 선택해야합니다. 녹아웃의자체 유효성 검사 익스텐더에서 관찰 가능한 속성을 호출하려면 어떻게해야합니까?
TypeError: _self.CountryOfPractice() is not a function.
내 제한된 이해 :
function viewModel(model) {
var _self = this;
// Various guff
_self.ConfirmationOption = ko.observable(model.ConfirmationOption).extend({ required: { message: _self.mdata.requiredMessage } }); //mdata is part of the guff
_self.CountryOfPractice = ko.observable(model.CountryOfPractice).extend({
required: {
message: "You must select a country",
onlyIf: function() { return (_self.ConfirmationOption() === '4' && (_self.CountryOfPractice() === null || _self.CountryOfPractice() === undefined)); }
}
});
// Assorted other guff
}
내가 이것을 실행하려고, 방화범이 끌려 오류가 보여주는, 구문 분석하려고 발생 하더군요 다음과 같이 뷰 모델의 관련 코드는 ko.observable
으로 선언 된 속성은 엄격하게 JS 속성이 아니며 현재 값을 얻기 위해 함수로 액세스해야합니다. 대부분의 다른 코드 영역에서는 정상적으로 잘 작동합니다. 유효성 검사기 확장 내에서이 값에 대한 액세스를 시도하는 이유는 선택이 이루어 졌기 때문입니다.
디버거에서 CountryOfPractice
이 아직 _self
의 일부가 아니므로 오류가 발생하는 방식을 다소 볼 수 있습니다. 나는 다른 방법으로 미리 테스트 해 보았지만 그 함수는 실패했다. 왜냐하면 CountryOfPractice()
의 익스텐더가 아직 내 밸리데이션 방법을 보지 못했기 때문에이 방법을 쓰면 실패했다. 아직 CountryOfPractice()
을 본 적이 없으므로 실패한다.
기능을 작동 시키려면 어떤 패턴을 사용해야합니까?
나는 명백한 물어 싫어하지만 인용 오류가 말한다 "형식 오류 :. _self_CountryOfPractice는()는 함수가 아닙니다", _self'과'CountryOfPractice()'오타 또는 실제 오류'사이에 밑줄이 ? 나는 FF로 작동하는 (단순화 된) 코드를 얻는 데 문제가 없었습니다. http://jsfiddle.net/k922m1o7/1/ – aaronfay
오타입니다. 점이어야합니다. – Gareth