Я делаю привязку, которая упрощает добавление класса CSS в зависимости от логического значения. Я хотел использовать applyBindingAccessorsToNode
, потому что кажется более чистым, чем вызов .init
и .update
родной связи css
в новой привязке.Использование applyBindingAccessorsToNode в пользовательской привязке
Моя проблема заключается в том, как использовать valueAccessor
, потому что привязка, похоже, неправильно обрабатывается в зависимости от того, является ли предоставленное значение наблюдаемым, объектом или оцененным наблюдаемым.
Связывание заключается в следующем:
ko.bindingHandlers.ignoreValidation = {
init(element, valueAccessor, allBindings, viewModel, bindingContext) {
ko.applyBindingAccessorsToNode(element, { css: { ignoreValidation: valueAccessor() } }, bindingContext);
}
}
Это приводит к ошибке (The [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
.