Angular手表是真的 - 哪个属性被改变了

时间:2014-03-16 10:27:37

标签: angularjs

我有一个深入监视的对象(在$ watch的第三个参数中是真的)。 当手表被触发时,我想知道哪个属性被更改了。我所得到的只是新旧价值。有没有一种好方法可以知道改变了什么?我不想比较新旧对象并搜索已更改的属性。

1 个答案:

答案 0 :(得分:0)

不是最干净的方法,但解决此问题的非纯AngularJS方法是在对象上使用Object.observe()而不是$ watch,因为它传递了已更改属性的名称。

Object.observe()

的外部链接

另一种方法是覆盖对象上的getter和setter,以便创建一个存储在对象内部的已更改属性列表。不确定这个的确切实现,也不是那么干净。