在angularJs中:在字符串变量上设置$ watch和在对象的键上设置$ watch之间的区别是什么?

时间:2015-04-27 03:30:39

标签: angularjs angularjs-watch

在angularJs中:在字符串变量上设置$ watch和在对象的键上设置$ watch之间的区别是什么?

详细情景如下:

$scope.activedMenu = {'id' : '...', 'name' : 'menu1'};
$scope.selectedMenuName = 'menu1';
$scope.$watch('activedMenu.name', function () {...});
$scope.$watch('selectedMenuName', function () {...});

所以,我的问题是" $范围之间的差异。$ watch(' activedMenu.name',function(){...})"使用" $ scope。$ watch(' selectedMenuName',function(){...})"?任何帮助将不胜感激!

(我认为设置$ watch的这两种方式是等价的,我从范围开发指南中提到!https://docs.angularjs.org/guide/scope

1 个答案:

答案 0 :(得分:1)

基本上$watch需要字符串参数&在当前范围内搜索该参数&把脏手表放在上面。

activedMenu.name selectedMenuName上观看是同一回事,第一个会在name的{​​{1}}属性上观看,第2个我们会关注activedMenu范围变量。

我认为唯一的区别是你正在观察单个属性,所以你可以在这里使用对象相等选项来深入观察对象的变化。您可以第一次观看,但观看字符串应仅selectedMenuName

activedMenu