无法解析绑定。淘汰赛错误

时间:2013-04-05 18:27:00

标签: knockout.js

这是我的第二天学习淘汰赛。

尝试附加“deleteItem”按钮单击。它给出了以下错误。

  

错误

     

未捕获错误:无法解析绑定。
  消息:ReferenceError:未定义deleteItem;绑定值:单击:deleteItem

JavaScript的:

$(function () {
    var defaultData = [{
        id: 1,
        item: "Todo 1"
    }, {
        id: 2,
        item: "Todo 2"
    }, {
        id: 3,
        item: "Todo 3"
    }];
    var viewModel = {
        listItem: ko.observableArray(defaultData),
        addItem: function () {
            // Add new item
            var id = this.listItem().length + 1;
            this.listItem.push({
                id: id,
                item: "Todo " + id
            });
        },
        deleteItem: function () {
            alert(this);
        }
    }
    ko.applyBindings(viewModel, main);
});

HTML:

<div id="main">
    <button data-bind="click: addItem">+ Add Item</button>
    <div data-bind="foreach: listItem">
        <input type="text" data-bind="value: item" />
        <input type="button" data-bind="click: deleteItem" />
        <br />
    </div>
</div>

1 个答案:

答案 0 :(得分:8)

函数deleteItem位于视图模型上。当您在foreach内部绑定时,绑定操作的上下文是来自item数组的单个listItem。您需要绑定到$root.deleteItem以引用根视图模型。