我的控制器中有以下手表。
var pageFunc = $scope.$watch('page["USER"].number', function(newob,oldob){
console.log("WATCHING page");
if(oldob != newob){
//perform data load
}
},true);
我的收藏品看起来像这样
page["USER"].number = 20;
page["TESTER"].number = 60;
page["BORROWER"].number = 30;
page["CLIENT"].number = 80;
我需要一只手表来观看特定元素的所有这些集合更改。
我尝试过这样的事情。
$scope.$watch('page[" '+$scope.selectedType+'"].number', function(newob,oldob)
其中$ scope.selectedType在ng-init中设置。
但由于在ng-init之前触发了watch,因此失败。 实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
您可以使用函数回调来查看其更改:
$scope.$watch(function() {
return page[$scope.selectedType].number;
}, function(newValue, oldValue) {
if(oldValue != newValue) {
// perform something
}
});
或者,如果$scope.selectedType
是唯一值,那么我猜你可以安全地注意它:
$scope.$watch('selectedType', function(newValue, oldValue) {
if(oldValue != newValue) {
// perform something
}
});