Attualmente sto memorizzando lo stato utilizzando i dati jQuery per l'elemento dom.Qual è il modo preferito per memorizzare lo stato tra init e update per il binding knockout personalizzato?
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
}
}
};
C'è un posto migliore per memorizzare lo stato per associazione che non richiede il dom? È possibile utilizzare il bindingContext per memorizzare lo stato per ciascuna istanza dell'associazione?
Buona domanda. Immagino che la tua soluzione sia molto buona. Ulteriori miglioramenti potrebbero essere fatti considerando alcune altre specifiche del tuo codice. – Oybek
Secondo. Ogni associazione è correlata a uno specifico dom node, pertanto la memorizzazione dei relativi dati associati a quel nodo dom è una buona strada da percorrere. – Niko