我想创建一个自定义绑定作为添加其他绑定的简写 - 如宏。
<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()
}
}
答案 0 :(得分:9)
您可以在绑定处理程序的ko.applyBindingsToNode
内调用init
,如:
ko.applyBindingsToNode({ click: someHandler, text: someText });
如果您正在应用类似控制流的内容,那么您可能希望在第二个参数中传递上下文。
答案 1 :(得分:0)
您是否尝试在自定义活页夹中使用jQuery:
ko.bindingHandlers.foo = {
init: function(el,val,bindings,model,context) {
$(el).attr('data-bind', 'click: clickHandler');
}
}