knockout:在自定义绑定init中添加另一个绑定

Six*_*ase 3 knockout.js ko-custom-binding

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

<div data-bind="foo: 1"></div>
Run Code Online (Sandbox Code Playgroud)

应该做同样的事情

<div data-bind="click: clickHandler, css: { someClass: someObservable }, ...">
</div>
Run Code Online (Sandbox Code Playgroud)

就像是:

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

RP *_*yer 9

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

ko.applyBindingsToNode({ click: someHandler, text: someText });
Run Code Online (Sandbox Code Playgroud)

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