javascript - KnockOut 无法解析绑定(bind)。引用错误

标签 javascript knockout.js

错误:无法解析绑定(bind)。消息:ReferenceError:消息未定义;绑定(bind)值:文本:消息。

我无法弄清楚绑定(bind)失败的原因。

下面是 JavaScript 代码:

    var LogItemModel = function () {
        var self = this;

        function LogItem($root, appName, level, message) {
            self.appName = ko.observable(appName);
            self.level = ko.observable(level);
            self.message = ko.observable(message);
        }

        self.logItems = ko.observableArray();

        self.add = function (appName, level, message) {
            self.logItems.push(new LogItem(self, appName, level, message));
        };
    };


    $(document).ready(function () {
        var logItemModel = new LogItemModel();
        ko.applyBindings(logItemModel);
        var url = "http://localhost:49091/api/Log";

        $.getJSON(url, function (result) {
            $.each(result, function (idx, logItem) {
                logItemModel.add(logItem.ApplicationName, logItem.Level, logItem.Message);
                debugger;
            });
        }).error(function (e) {
        });

    });

下面是html代码:

<div id="LogItemList" data-bind="foreach:logItems">
    <span data-bind="text: message"></span>
</div>

我什至尝试将绑定(bind)应用到 LogItemList 元素

ko.applyBindings(logItemModel, $("#LogItemList")[0]);

但即使这样也不起作用。

最佳答案

function LogItem($root, appName, level, message) {
    self.appName = ko.observable(appName);
    self.level = ko.observable(level);
    self.message = ko.observable(message);
}

在此函数中,LogItemModel 中引用了 self,将其更改为:

function LogItem($root, appName, level, message) {
    var that = this;
    that.appName = ko.observable(appName);
    that.level = ko.observable(level);
    that.message = ko.observable(message);
}

关于javascript - KnockOut 无法解析绑定(bind)。引用错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19768262/

相关文章:

javascript - 性能 - Object(obj) 做什么?

knockout.js - knockout 3.2 : can components/custom elements contain child content?

javascript - 如果值大于,则 knockout js隐藏按钮

javascript - 定位多个相似项目组中的事件

javascript - 使用javascript在数组中查找一组对象

javascript - Javascript 中的对象与原型(prototype)

javascript - Knockout 中的类继承与方法覆盖

javascript - JavaScript 中的斐波那契数列

javascript - Knockout.js ObservableArray 没有绑定(bind)

javascript - 以编程方式更新可观察值时 Knockoutjs 不更新 UI