0

たとえば、次のようなカスタム ノックアウト バインディングがあります。

ko.bindingHandlers.yourBindingName = {
    init: function(element, valueAccessor, allBindingsAccessor,
                   viewModel, bindingContext)
    {
        // how to access the value-part of the data-bind="name:value" attribute?
    },
};

と:

<div data-bind="yourBindingName: someValue"> </div>

関数から data-bind 属性の値の部分 (つまり、上記の例の「someValue」) にアクセスすることは可能initですか?


更新:私が何を意味するのかを明確にするために:

  • の data-bind 属性にはdiv、コロンで区切られた名前と値の部分があります (例: "yourBindingName: someValue")。
  • name-part は、呼び出すバインディングを指定します
  • バインディング内の値の部分にアクセスして、パラメーターのように使用したい
4

2 に答える 2

0

なぜこれをやりたいのかわかりませんが、ここに行きます:

ko.bindingHandlers.reflector = {
    init: function(element, valueAccessor, allBindingsAccessor,
                   viewModel, bindingContext)
    {
        var reflected;
        var binding = valueAccessor();
        for (var prop in viewModel) {
            if (viewModel[prop] == binding) {
                reflected = prop;
                break;
            }
        }
        ko.bindingHandlers.text.update(element, function(){ return reflected});
    },
};

そしてフィドルで

于 2013-03-27T15:36:30.433 に答える
0

私があなたを正しく理解していれば、カスタム バインディング ハンドラーに送信されるデータは、オブザーバブルとしての valueAccessor です。したがって、値が必要な場合は、次のようにします。

var value = valueAccessor();
于 2013-03-27T10:28:43.237 に答える