knockout使用脚本应用foreach绑定

时间:2014-01-15 10:32:59

标签: javascript knockout.js

我尝试使用脚本应用绑定,如下面的代码:

<div data-bind="custom: {}">
  <div class="list">
    <span data-bind="text: text, click: doSomething"></span>&nbsp;&gt;&nbsp;
  </div>
</div>

ko.bindingHandlers.custom = {
  init: function (ele) {
    var list = ko.observableArray([]),
        ee = $(ele).find('.list')[0]

    ... code / event / callback / trigger to keep the list data change

    ko.bindingHandlers.foreach.apply(this, ee, list) //this line not work
  }
}

类似于:

<div data-bind="custom: {}"> //tested and confirm work
  <div class="list" data-bind="foreach: ko.observableArray([ { id: 'a', text: 'aa' } ])">
    <span data-bind="text: text, click: doSomething"></span>&nbsp;&gt;&nbsp;
  </div>
</div>

我的问题是这个

有什么问题
ko.bindingHandlers.foreach.apply(this, ee, list) 

尝试fiddle

1 个答案:

答案 0 :(得分:0)

您需要使用call而不是apply; call获取传递给函数的上下文和任意​​数量的参数,而apply获取上下文和单个数组参数,其元素作为参数传递给函数。