Ich mache eine Bindung, die das Hinzufügen einer CSS-Klasse in Abhängigkeit von einem booleschen Wert vereinfacht. Ich wollte applyBindingAccessorsToNode
verwenden, weil es sauberer scheint als .init
und .update
der ursprünglichen css
Bindung in der neuen Bindung aufrufen.Verwendung von applyBindingAccessorsToNode in benutzerdefinierten Bindung
Mein Problem ist, wie man valueAccessor
verwenden, weil die Bindung scheint falsch geparst abhängig davon, ob der angegebene Wert ein Observable, ein Objekt oder eine evaluierte Observable ist.
Die Bindung ist diese:
ko.bindingHandlers.ignoreValidation = {
init(element, valueAccessor, allBindings, viewModel, bindingContext) {
ko.applyBindingAccessorsToNode(element, { css: { ignoreValidation: valueAccessor() } }, bindingContext);
}
}
Dies führt zu einem Fehler (die [object Object]
ist offensichtlich unbeabsichtigte)
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; Ich möchte eine Bindung programmgesteuert zu einem Element hinzufügen, ohne beide update
und init
zu verwenden.