0

異常なコードを見つけましたが、このカスタム バインディング関数を呼び出す方法と、それがどのように機能するのかがわかりません。だからここに私のコードがあります:

ビューモデル:

ko.bindingHandlers.test = function ($) {
    return {
        init: function (el, valueAccessor, bindingsAccessor, viewModel) {
        },
        update: function (el, valueAccessor, bindingsAccessor, viewModel) {
        }
    }
}

意見:

<input type="text" data-bind="test: ???, value: 0, settings: { test: 'test-value' }">
4

1 に答える 1

1

あなたがする必要があるクロージャースコープを持っているので、あなたのコードは間違っています

ko.bindingHandlers.test = (function ($) {
    return {
        init: function (el, valueAccessor, bindingsAccessor, viewModel) {
        },
        update: function (el, valueAccessor, bindingsAccessor, viewModel) {
        }
    }
})(jQuery);

編集: マークアップで、viewModel のメンバーへのバインド テストを次のように行います。

<input type="text" data-bind="test: myMember />

カスタム バインディングからバインディングにアクセスするには

init: function (el, valueAccessor, bindingsAccessor, viewModel) {
   var value = ko.utils.unwrapObservable(valueAccessor());
}
于 2013-05-13T10:29:29.513 に答える