在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)
答案 0 :(得分:1)
基本上$watch
需要字符串参数&在当前范围内搜索该参数&把脏手表放在上面。
在activedMenu.name
或 selectedMenuName
上观看是同一回事,第一个会在name
的{{1}}属性上观看,第2个我们会关注activedMenu
范围变量。
我认为唯一的区别是你正在观察单个属性,所以你可以在这里使用对象相等选项来深入观察对象的变化。您可以第一次观看,但观看字符串应仅selectedMenuName
activedMenu