¿Hay alguna manera de invocar una vez algún método sobre el valor cambiado? He creado envoltura para bindingHandlers.value que invocar este método:invocar método personalizado en el valor cambiado
var update = bindingHandlers.value.update;
bindingHandlers.value.update = function(element, valueAccessor, allBindingAccessor, viewModel) {
var newValue = ko.utils.unwrapObservable(valueAccessor());
var elementValue = ko.selectExtensions.readValue(element);
var valueHasChanged = (newValue != elementValue);
update(element, valueAccessor, allBindingAccessor, viewModel);
if (valueHasChanged) {
myMethod();
}
}
Desafortunadamente cuando cambio algún valor myMethod se llama dos veces becuase llegado dependencyObservable también se cambia. ¿Algunas ideas?
I tengo una calculadora de arrendamiento que necesita un objeto con aproximadamente 20 propiedades y me gustaría pasar mi viewModel a esta calculadora como parámetro, así que me gustaría suscribirme a la mayoría de las propiedades. –
Siempre puede iterar las propiedades y cada una de las cuales es una llamada 'observable' o 'observableArray'' subscribe' on (la manera más fácil puede ser simplemente probar si cada propiedad tiene una función 'subscribe') –
Actualicé mi respuesta con un Método 'subscribe all', tenga en cuenta que no hace gráficos profundos, solo superficiales. –