Ho un modulo con un input di testo associato alla proprietà calcolata (contenente un'ora). Dopo che un utente inserisce un valore, viene analizzato in un valore intero contenente i minuti totali.Forzare l'aggiornamento di una proprietà calcolata con limitazione
Poiché questa non è una funzione banale (ci sono molti modi di formattare il tempo), la proprietà ha un Throttle Extender.
Funziona tutto bene, il problema è quando l'utente immette un valore e preme immediatamente un pulsante di salvataggio, ovviamente il valore regolato non viene ancora valutato.
self.totalMinutes = ko.observable(0);
self.totalMinutesValue = ko.computed({
read: function() {
return MinutesToFormat(self.totalMinutes());
}
write: function(value) {
self.totalMinutes(FormatToMinutes(value));
}
}).extend({ throttle: 250 });
self.Save = function() {
// Send self.totalMinutes() to server, need to ensure the throttled
// computed has been written.
}
Esiste un modo semplice per forzare l'aggiornamento immediato della proprietà dal metodo di invio? Potrei aggiungere un setTimeout
ma questo è ovviamente lontano dall'ideale.
Non ho usato molto il throttle ma in 3.1 credo che si consiglia di usare invece il rateLimit extender, forse questo risolverà il problema - http://www.knockmeout.net/2014/03/knockout-3-1 -released.html – 4imble