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。 update
とinit
の両方を使用せずに、要素にプログラムでバインディングを追加したいとします。
ko.bindingHandlers.ignoreValidation = {
init(element, valueAccessor, allBindings, viewModel, bindingContext) {
ko.applyBindingsToNode(
element,
{ css: { ignoreValidation: valueAccessor() }},
bindingContext);
}
}
実施例
が this fiddleで見つけることができます:予想通りko.applyBindingsToNode
作品を使用して