2

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

尝试为按钮单击附加“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>
4

1 回答 1

8

该功能deleteItem在您的视图模型上。当您在 内部绑定foreach时,绑定操作的上下文是数组中的item个体listItem。您需要绑定到$root.deleteItem以引用根视图模型。

于 2013-04-05T18:45:10.357 回答