【发布时间】:2015-10-30 04:41:58
【问题描述】:
我需要能够在执行特定任务时忽略特定的手表。这是场景。
我在用于计算“总计”字段的字段上有几个观察者。
所有这些字段都可以手动修改,这将触发计算“总计”字段的手表。
字段也可以从保存状态加载,这也会触发计算“totals”字段的手表。
“总计”字段也可以手动覆盖、保存和加载。
当手动覆盖的“总计”字段与其他字段一起加载时会出现此问题。重新计算“总数”的手表被触发,并覆盖手动覆盖的“总数”。
我需要能够在负载发生时忽略手表。有什么办法吗?
我知道可以使用创建手表时传回的取消注册功能禁用观察者,但是当您重新创建观察者时,它仍然知道它正在观察的数据已更改。
注意:这是对围绕问题的业务逻辑的过于简化的描述。无法禁用手表将需要大量工作。
这是一个显示问题的小提琴:jsfiddle.net/vGWZy/1/
【问题讨论】:
-
您有什么理由特别使用手表吗?从它的声音来看,
$scope应该能够处理所有这些。也许创建一个小提琴会有所帮助。 -
这是一个非常大的业务逻辑,数据变化的方式有很多种。不使用手表将是一场噩梦。我会看看我是否可以拼凑一个简单的小提琴来展示这个问题。希望有人能对这是否至少是可能的有一个明确的答案。
-
我认为如果可能的话,一个简单的例子在这里会很有帮助。
-
添加了一个小提琴来演示这个问题。 jsfiddle.net/vGWZy/1/
-
对不起,我最初发布了错误的小提琴链接。它现在已更新。
标签: angularjs toggle listener watch