Actualmente estoy almacenando el estado usando datos jQuery para el elemento dom.¿Cuál es la forma preferida de almacenar el estado entre el inicio y la actualización para el enlace personalizado knockout?
ko.bindingHandlers.customValue = {
init: function init(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
var state = { isEditing: false };
$(element).focus(function focus() {
state.isEditing = true;
}).blur(function blur() {
state.isEditing = false;
}).data("customBinding", state);
},
update: function update(element, valueAccessor, allBindingsAccessor, viewModel, bindingContext) {
// ignore if updating
if (!$(element).data("customBinding").isEditing) {
// handle update if they are not updating
}
}
};
¿Hay un lugar mejor para almacenar el estado por enlace que no requiere la dom? ¿Se puede usar el bindingContext para almacenar el estado de cada instancia del enlace?
Buena pregunta. Supongo que tu solución es muy buena. Se pueden hacer mejoras adicionales teniendo en cuenta algunos otros detalles de su código. – Oybek
Yo en segundo lugar. Cada enlace está relacionado con un nodo dom específico, por lo tanto, almacenar datos relacionados vinculados a ese nodo dom es una buena forma de hacerlo. – Niko