1

在 angularJs 中:在字符串变量上设置 $watch 和在 Object 的键上设置 $watch 有什么不同?

详细场景如下:

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

所以,我的问题是 "$scope.$watch('activedMenu.name', function () {...})" 与 "$scope.$watch('selectedMenuName', function () {.. .})”?任何帮助将不胜感激!

(我认为这两种设置 $watch 的方法是等价的,我参考了范围开发指南!https://docs.angularjs.org/guide/scope

4

1 回答 1

1

基本上$watch需要字符串参数并在当前范围内搜索该参数并在其上放置脏表。

观看activedMenu.name OR selectedMenuName是一回事,第一个将观看 的name属性 activedMenu,第二个将观看selectedMenuName范围变量。

我认为唯一的区别是您正在观看单个属性,因此您可以在此处使用对象相等选项来深入观察对象的变化。您可能有第一只手表,但手表串应该activedMenu只有

$scope.$watch('activedMenu', function(newVal, oldVal){
   //on watch code here
}, true);
于 2015-04-27T03:37:47.197 回答