У меня есть форма с текстовым вводом, привязанным к вычисляемому свойству (содержащему время). После того, как пользователь вводит значение, оно преобразуется в целочисленное значение, содержащее общее количество минут.
Поскольку это нетривиальная функция (существует множество способов форматирования времени), свойство имеет расширитель дроссельной заслонки.
Все это работает нормально, проблема в том, что когда пользователь вводит значение и сразу же нажимает кнопку сохранения, очевидно, что значение с дросселированием еще не оценено.
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.
}
Есть ли простой способ заставить свойство немедленно обновляться из метода отправки? Я мог бы добавить setTimeout
, но это, конечно, далеко не идеально.