这是我的第二天学习淘汰赛。
尝试附加“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>
答案 0 :(得分:8)
函数deleteItem
位于视图模型上。当您在foreach
内部绑定时,绑定操作的上下文是来自item
数组的单个listItem
。您需要绑定到$root.deleteItem
以引用根视图模型。