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.applyBindingsToNode内から呼び出すことができます。init

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

制御フローなどを適用する場合は、2 番目の引数でコンテキストを渡します。

于 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 に答える