Javascript 动态更改控制器中的手表
我的控制器里有下面的手表Javascript 动态更改控制器中的手表,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,我的控制器里有下面的手表 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
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内设置
但由于watch在ng init之前触发,因此失败。
实现这一目标的最佳方式是什么 您可以使用函数回调查看其更改:
$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
}
});
若我查看页面,若任何类型被更改,它将被触发。例如-page[“USER”]或page[“CLIENT”]我需要的是在任何给定的时间只监视特定类型的集合。例如-watch$scope.$watch('page[“CLIENT”].number')或$scope.$watch('page[“USER”].number'),我不能将它们硬编码为单独的手表,因为这个集合可能会增长。