我有一个对其进行深度观察的对象(在 $watch 的第三个参数中为真)。
当 watch 被触发时,我想知道哪个属性发生了变化。我得到的只是新旧值(value)。有什么好的方法可以知道发生了什么变化?我不想比较新旧对象并搜索更改的属性。
最佳答案
不是最干净的方法,但解决此问题的非纯 AngularJS 方法是使用 Object.observe()
在对象上而不是 $watch 上,因为它传递了已更改属性的名称。
Object.observe() 的外部链接
另一种方法是覆盖对象上的 getter 和 setter,以便它们创建一个已更改的属性列表,该列表存储在对象内部。不确定这个的确切实现,它也不是那么干净。
关于angularjs - 带有 true 的 Angular watch - 更改了哪个属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22435695/