我有一个表单,其文本输入绑定到计算属性(包含时间)。用户输入一个值后,它被解析为一个包含总分钟数的整数值。
由于这不是一个微不足道的函数(格式化时间的方法有很多),所以该属性有一个Throttle Extender。
这一切都很好,问题是当用户输入一个值并立即点击保存按钮时,显然尚未评估限制值。
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.
}
有没有一种简单的方法可以强制属性立即从 send 方法更新?我可以添加一个setTimeout
,但这当然远非理想。