淘汰出价并不起作用。无法访问“removeItem”函数
HTML
<div>
<div data-bind="with: idea">
<input type = "text"
data-bind = 'value:itemToAdd' />
<input type="button" data-bind="click:$parent.addItem" value="add" />
<ul data-bind = "foreach:allItems">
<li>
<span data-bind = "text:$data"></span>
<input type="button" data-bind="click: $parents[1].removeItem" value="remove"/>
</li>
</ul>
</div>
</div>
脚本
var vm = {
idea: ko.observable({
allItems: ko.observableArray(),
itemToAdd : ko.observable("")
}),
addItem : function () {
var item = this.itemToAdd();
this.allItems.push(item);
this.itemToAdd("");
},
removeItem : function (data) {
this.allItems.remove(data);
}
};
ko.applyBindings(vm);
jsFiddle here感谢任何帮助。谢谢!
答案 0 :(得分:4)
您可以使用bind
功能为this
分配适当的值。
<input type="button" data-bind="click: $parents[1].removeItem.bind($parent, $data)" value="remove"/>
bind
func的第一个参数是绑定到this
的对象,第二个参数是目标函数的第一个参数。
这是工作小提琴:http://jsfiddle.net/M2xDF/6/