Если ваше имя класса не может быть определено при создании шаблона (т. Е. Оно является частью вашей модели), вы можете создать пользовательскую привязку .
Содержимое вашегоМетоды init
/ update
просто устанавливают имя класса для element
на основе того, что возвращает valueAccessor
.Для простого примера вы можете сделать (используя jQuery):
ko.bindingHandlers.yourBindingName = {
init: function(element, valueAccessor, allBindingsAccessor, viewModel) {
// This will be called when the binding is first applied to an element
// Set up any initial state, event handlers, etc. here
$(element).addClass(valueAccessor());
},
update: function(element, valueAccessor, allBindingsAccessor, viewModel) {
// This will be called once when the binding is first applied to an element,
// and again whenever the associated observable changes value.
// Update the DOM element based on the supplied values here.
}
};
Вы можете построить более сложную привязку, основанную на нокауте css binding .