在 angularJs 中:在字符串变量上设置 $watch 和在对象的键上设置 $watch 有什么不同?
In angularJs: what's the different between setting $watch on string variable and setting $watch on Object's key?
在 angularJs 中:在字符串变量上设置 $watch 和在对象的键上设置 $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'”之间有什么区别, 功能 () {...})”?任何帮助将不胜感激!
(我认为这两种设置 $watch 的方法是等价的,我参考了范围开发指南!https://docs.angularjs.org/guide/scope)
基本上$watch
需要字符串参数并在当前范围内搜索该参数并在其上放置脏表。
在 activedMenu.name
上观看 或 selectedMenuName
是一回事,第一个将在 name
属性 上观看activedMenu
,第二个将监视 selectedMenuName
范围变量。
我认为唯一的区别是您正在观看单个 属性,因此您可以在此处使用对象相等选项,它可以深入观察对象的变化。您可能有第一只手表,但手表字符串应仅 activedMenu
$scope.$watch('activedMenu', function(newVal, oldVal){
//on watch code here
}, true);
在 angularJs 中:在字符串变量上设置 $watch 和在对象的键上设置 $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'”之间有什么区别, 功能 () {...})”?任何帮助将不胜感激!
(我认为这两种设置 $watch 的方法是等价的,我参考了范围开发指南!https://docs.angularjs.org/guide/scope)
基本上$watch
需要字符串参数并在当前范围内搜索该参数并在其上放置脏表。
在 activedMenu.name
上观看 或 selectedMenuName
是一回事,第一个将在 name
属性 上观看activedMenu
,第二个将监视 selectedMenuName
范围变量。
我认为唯一的区别是您正在观看单个 属性,因此您可以在此处使用对象相等选项,它可以深入观察对象的变化。您可能有第一只手表,但手表字符串应仅 activedMenu
$scope.$watch('activedMenu', function(newVal, oldVal){
//on watch code here
}, true);