1
Knockout JS를 통해 작성된 스크립트가 있습니다.넉 아웃 카운터 오류 (ASP.NET MVC)
여기 여기보기 코드
<span data-bind='text: numberOfClicks'> </span>/<span data-bind='text: totalnumberofClicks'> </span>
이다 나는 경우 numberOfClicks이> = totalnumberofClicks 경고를받을 필요가 코드
function count_blocks() {
var length = $("#questions > div").length;
var ClickCounterViewModel = function() {
this.totalnumberofClicks = ko.observable(length);
this.numberOfClicks = ko.observable(1);
this.registerClick = function() {
this.numberOfClicks(this.numberOfClicks() + 1);
if (numberOfClicks >= totalnumberofClicks) {
alert("error!");
}
};
};
ko.applyBindings(new ClickCounterViewModel());
}
입니다.
하지만 오류가
Uncaught ReferenceError: numberOfClicks is not defined
at ClickCounterViewModel.registerClick (2141:169)
at HTMLButtonElement.<anonymous> (knockout-3.4.2.js:90)
at HTMLButtonElement.dispatch (jquery-3.1.1.js:5201)
at HTMLButtonElement.elemData.handle (jquery-3.1.1.js:5009)
나는 그것을 고칠 수있는 방법이?
은''에서 this' registerClick'은 항상 당신의 ViewModel 인스턴스를 참조하지 않습니다. 함수 선언에'.bind (this)'를 추가하거나'prototype'에서 정의하십시오. 'data-bind = "click을 사용하여'click' 바인딩으로 바인드 할 수도 있습니다 : registerClick.bind ($ data)"' – user3297291