AngularJS 有没有办法将其合并到一个 $watch 中,或者我仍然需要一个 $watch 来保存我观看的每件事?
$scope.$watch('option.selectedContentType', function () {
$scope.getData();
});
$scope.$watch('option.selectedContentStatus', function () {
$scope.getData();
});
最佳答案
您可以在下面找到有关如何使用 $watchCollection 的一些变体
http://jsbin.com/IYofiPi/4 -working example here .
检查您的 console.log 以查看正在触发的事件。
查看数组的项目
$scope.cities = ['Salvador', 'London', 'Zurich', 'Rio de Janeiro']; //Array
$scope.$watchCollection('cities', function(newValues, oldValues) {
console.log('*** Watched has been fired. ***');
console.log('New Names :', newValues);
});
观察对象的属性
$scope.city = {
name: 'London',
country: 'England',
population: 8.174
}
$scope.$watchCollection('city', function(newValues, oldValues) {
console.log('*** Watched has been fired. ***');
console.log('New Names :', newValues);
});
查看范围变量列表($scope.firstPlanet、$scope.secondPlanet)
$scope.firstPlanet = 'Earth';
$scope.secondPlanet = 'Mars';
$scope.$watchCollection('[firstPlanet, secondPlanet]', function(newValues){
console.log('*** Watched has been fired. ***');
console.log('New Planets :', newValues[0], newValues[1]);
});
Starting from AngularJS 1.3 there's a new method called $watchGroup for observing a set of expressions.
关于angularjs - 我可以使用 AngularJS 将多个字段的监视合并到一个监视中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17872919/