淘汰约束父母

时间:2013-12-25 10:43:13

标签: knockout.js

淘汰出价并不起作用。无法访问“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感谢任何帮助。谢谢!

1 个答案:

答案 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/