我的问题是为什么我清除它时两个数据绑定输入字段的行为会有所不同,尽管据我所知,它们的设置方式与淘汰时计算出的observables相同。
使用这个小提琴: http://jsfiddle.net/ya7eF/167/
'min'字段工作正常,'hrs'字段不正常。要重现我的问题,请按照以下步骤操作。当我从Duration'hrs'字段中删除文本时,我想了解为什么它不会被模糊的零替换,就像min字段一样。
答案 0 :(得分:1)
在第二种情况下,Duration
可观察量的值实际上没有改变。当observable的值设置为其当前值时,则不会向订阅者发送通知。这意味着不会触发计算出的observable的读取函数。
处理此问题的一种方法是使用可观察的valueHasMutated
函数来确保发送通知。要避免多次通知,您可以执行以下操作:
if (totalMinutes !== self.Duration()) {
self.Duration(totalMinutes);
}
self.Duration.valueHasMutated();
以下是您更新的示例:http://jsfiddle.net/rniemeyer/ya7eF/168/