2014-01-15 3 views
0

Я пытаюсь применить связывание, используя скрипт ниже кода Еогеасп:Нокаут применять связывание с использованием сценария

<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

ответ

0

Вы должны использовать call вместо apply; call принимает контекст и любое количество аргументов, передаваемых функции, тогда как apply принимает контекст и единственный аргумент массива, элементы которого передаются как аргументы функции.

+0

спасибо за повтор, но ваша идея кажется неработоспособной, я протестировал ее на http://jsfiddle.net/SimonYong/sZzYB/, или, может быть, вы сможете ее протестировать. в любом случае спасибо за помощь – yskeat

Смежные вопросы