javascript - knockout 计数器错误 (ASP.NET MVC)

标签 javascript asp.net-mvc knockout.js

我有通过 Knockout JS 编写的脚本。

这里是查看代码

 <span data-bind='text: numberOfClicks'>&nbsp;</span>/<span data-bind='text: totalnumberofClicks'>&nbsp;</span>

这是代码

 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());

}

当 numberOfClicks >=totalnumberofClicks 时,我需要收到警报。

但是我有错误

 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内仅是方法内的范围。通过将外部作用域变量绑定(bind)到 self 来访问外部作用域变量并将其用作:

var ClickCounterViewModel = function () {
    var self = this;
    this.totalnumberofClicks = ko.observable(length);
    this.numberOfClicks = ko.observable(1);
    this.registerClick = function () {
        self.numberOfClicks(self.numberOfClicks() + 1);
        if (self.numberOfClicks() >= self.totalnumberofClicks()) {
            alert("error!");
        }
    };
};

关于javascript - knockout 计数器错误 (ASP.NET MVC),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43611131/

相关文章:

javascript - Angular 4 使用 typescript 解析响应数据

javascript - 如何在构建期间不创建 404/不匹配匿名模块的情况下在 amd 兼容性检查中声明依赖项?

jquery - 使用 C# 设置 MVC 应用程序中输入的背景颜色

jquery - 将 Knockout.js 与最新的 jQuery 文件和 ASP.NET MVC 结合使用

knockout.js - KnockoutJS 验证 : Modifying radio button validation message display location(s)

Javascript 配置服务器 URL 并存储它

JavaScript 类 "undefined"- IE7

asp.net-mvc - MVC/Unity - 如何将依赖项注入(inject)自定义 FilterAttributes?

c# - 读取 SOAP 消息响应 ASP.NET MVC4 C#

javascript - 加载图像后,Knockout.js 中的容器元素淡入淡出