我有一个深入监视的对象(在$ watch的第三个参数中是真的)。 当手表被触发时,我想知道哪个属性被更改了。我所得到的只是新旧价值。有没有一种好方法可以知道改变了什么?我不想比较新旧对象并搜索已更改的属性。
答案 0 :(得分:0)
不是最干净的方法,但解决此问题的非纯AngularJS方法是在对象上使用Object.observe()
而不是$ watch,因为它传递了已更改属性的名称。
另一种方法是覆盖对象上的getter和setter,以便创建一个存储在对象内部的已更改属性列表。不确定这个的确切实现,也不是那么干净。