Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 带true的角度表-更改了哪个属性_Angularjs - Fatal编程技术网

Angularjs 带true的角度表-更改了哪个属性

Angularjs 带true的角度表-更改了哪个属性,angularjs,Angularjs,我有一个带有deepwatch的对象(在$watch的第三个参数中为true)。 当手表被触发时,我想知道哪个属性被改变了。我得到的只是新旧价值观。有没有一个好的方法来知道发生了什么变化?我不想比较新旧对象并搜索更改的属性。这不是最干净的方法,但解决这一问题的非纯AngularJS方法是在对象上使用Object.observe(),而不是$watch,因为它传递更改属性的名称 Object.observe()的外部链接 另一种方法是重写对象上的getter和setter,以便它们创建

我有一个带有deepwatch的对象(在$watch的第三个参数中为true)。
当手表被触发时,我想知道哪个属性被改变了。我得到的只是新旧价值观。有没有一个好的方法来知道发生了什么变化?我不想比较新旧对象并搜索更改的属性。

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

Object.observe()的外部链接


另一种方法是重写对象上的getter和setter,以便它们创建存储在对象内部的已更改属性列表。不确定这项技术的具体实现,而且也没有那么干净。

这就是它的工作原理。如果您真的不想编写代码来解决这个问题,您可以单独查看属性。或者尝试以下操作: