2016-04-28 12 views
0

ブール値に応じてCSSクラスの追加を簡単にするバインディングを作成しています。 applyBindingAccessorsToNodeを使用したかったのは、新しいバインディングでcssというネイティブの.init.updateを呼び出すよりもきれいだからです。カスタムバインディングでapplyBindingAccessorsToNodeを使用する

valueAccessor私の問題は、提供された値が観察可能かオブジェクトか評価された観測可能かどうかによってバインディングが正しく解析されないように見えるためです。

結合がこれです:

ko.bindingHandlers.ignoreValidation = { 
    init(element, valueAccessor, allBindings, viewModel, bindingContext) { 
     ko.applyBindingAccessorsToNode(element, { css: { ignoreValidation: valueAccessor() } }, bindingContext); 
    } 
} 

これは、エラー([object Object]が明らかに意図しないである)

Message: Unable to process binding "ignoreValidation: function(){return showLookup }" 
Message: Unable to process binding "css: [object Object]" 
Message: d is not a function 

TLになる。DR。 updateinitの両方を使用せずに、要素にプログラムでバインディングを追加したいとします。

ko.bindingHandlers.ignoreValidation = { 
    init(element, valueAccessor, allBindings, viewModel, bindingContext) { 
    ko.applyBindingsToNode(
     element, 
     { css: { ignoreValidation: valueAccessor() }}, 
     bindingContext); 
    } 
} 

実施例

this fiddleで見つけることができます:予想通り ko.applyBindingsToNode作品を使用して

答えて

0