Javascript angularjs:多块手表
我有下列手表:Javascript angularjs:多块手表,javascript,angularjs,Javascript,Angularjs,我有下列手表: $scope.$watch('[gridService.gridOptions.pagingOptions.currentPage, gridService.gridOptions.pagingOptions.pageSize]', function (newVal, oldVal, e) { if (newVal !== oldVal) { $scope.search(); } }, true); 我有两个问题: 如果pageSiz
$scope.$watch('[gridService.gridOptions.pagingOptions.currentPage, gridService.gridOptions.pagingOptions.pageSize]', function (newVal, oldVal, e) {
if (newVal !== oldVal) {
$scope.search();
}
}, true);
我有两个问题:
检查这些小提琴;他们都完成了你们的要求,一个是复杂的手表(和你们的手表稍有不同),另一个是单独的 → 复合表 → 两块手表 原理是一样的:一个变量,用于记住页面更改是否由页面大小更改引起。封闭的匿名函数仅隐藏其余代码的
var triggeredbagesize
:
(function() {
var triggeredByPageSize
// set $watches here
})();
我认为单独的手表(小提琴2)是更干净的。
观察多个属性这里有两件事要考虑:你可以通过这样的字符串数组:
$scope.$watch('[someproperty,someproperty2,someproperty3]',function(new,old){
//do something
},true);
末尾的“true”指定您希望深入监视对象,因此假设您有一个具有多个子属性的大型对象,并且希望监视父对象的任何更改,包括如果子属性更改,如果不传递true,则不会拾取子属性更改
你问是哪一个改变了arry我相信你可以通过在新的
$scope.$watch('[someproperty,someproperty2,someproperty3]',function(new,old){
console.log(new[0]);
console.log(new[1]);
},true);
最好有一个单独的手表,因为您的逻辑在哪个元素上发生了变化。