0

したがってreturn true、バインディングを使用して要素のデフォルトのクリックアクションを手動で許可することは誰もが知っていますclickが、次のようなカスタムバインディングがある場合はどうなりますか:

ko.bindingHandlers.action = {
    init: function(element, valueAccessor, allBindingsAccessor, context) {
        var options = valueAccessor();
        var params = options.slice(1);

        //wrap it in function, with parameter binding
        var newValueAccessor = function() {
            return function() {
                options[0].apply(context, params);
            };
        };

        ko.bindingHandlers.click.init(element, newValueAccessor, allBindingsAccessor, context);
    }
};

バインディングから N 個の引数を取ります:

action: [handle, 'open', $index()]

クリックを通過させるにはどうすればよいですか? return trueこの場合、 inhandleは機能しません。

4

1 に答える 1

2

実際のクリック ハンドラーは次のように定義されます。

        return function() {
            options[0].apply(context, params);
        };

指定されたサブハンドラーの値を返すように変更するだけです。

        return function() {
            return options[0].apply(context, params);
        };
于 2013-02-28T00:08:41.063 に答える