3

我想创建一个自定义绑定作为添加其他绑定的简写——比如宏。

<div data-bind="foo: 1"></div>

应该做同样的事情

<div data-bind="click: clickHandler, css: { someClass: someObservable }, ...">
</div>

就像是:

ko.bindingHandlers.foo = {
    init: function(el,val,bindings,model,context) {
        // some way to add { click: clickHandler } to bindings()
    }
}
4

2 回答 2

9

您可以ko.applyBindingsToNodeinit绑定处理程序中调用,例如:

ko.applyBindingsToNode({ click: someHandler, text: someText });

如果您正在应用控制流之类的东西,那么您可能希望在第二个参数中传递上下文。

于 2013-03-07T12:13:07.037 回答
0

您是否尝试过在自定义活页夹中使用 jQuery:

ko.bindingHandlers.foo = {
    init: function(el,val,bindings,model,context) {
        $(el).attr('data-bind', 'click: clickHandler');
    }
}
于 2013-03-07T11:36:25.527 回答