1

ノックアウトで同じ要素を複数のアクションにバインドするときに現在行っていることは次のとおりです。

data-bind="event: { click: doAction,
                    touchend : doAction}"

私の質問は:
アクションにバインドするときに使用できるショートカット表記はありますか?

私は次のようなものを期待します:

data-bind="event: {click, touchend : doAction}"
4

2 に答える 2

5

これを行うための組み込みのショートカットはありませんが、カスタムバインディングを使用してdata-bindクリーンにするのは非常に簡単です。

あなたが取ることができるいくつかのアプローチがあります。クリックとタッチエンドに固有のソリューションの1つは、次のとおりです。

ko.bindingHandlers.clickAndTouch = {
    init: function(element, valueAccessor, allBindingsAccessor, data) {
         var action = valueAccessor(),
             newValueAccessor = function() {
                 return {
                     click: action,
                     touchend: action
                 }                     
             };

         ko.bindingHandlers.event.init.call(this, element, newValueAccessor, allBindingsAccessor, data);      
    }        
};

次に、次のようにバインドします。

data-bind="clickAndTouch: doAction"

于 2012-05-03T12:07:47.903 に答える
1

少なくともKnockout2.1.0(そしてそれは3.4.2でも動作します)なので、以下を使用することができます:

data-bind="event: {'click touchend': doAction}"
于 2017-07-26T08:19:46.637 に答える