我正在尝试优化我已制作的应用的某些部分,我想知道观看一组参数的最有效方法是什么:
说我们有以下对象:
vm.search = {
query : '',
item1: ''
};
这样做最有效:
$ watch()x2
$scope.$watch('vm.search.query', function(newv, oldv) {
// process value
});
$scope.$watch('vm.search.item', function (newv, oldv) {
// process value
});
优点:
缺点:
$ watch(,true)
$scope.$watch('vm.search', function (newVal, oldVal) {
if (!angular.equals(newVal.query, oldVal.query)) {
// process value
}
if (!angular.equals(newVal.item, oldVal.item)) {
// process value
}
}, true);
优点:
缺点:
$ watchCollection()
$scope.$watchCollection('vm.search', function (newVal, oldVal) {
if (!angular.equals(newVal.query, oldVal.query)) {
// process value
}
if (!angular.equals(newVal.item, oldVal.item)) {
// process value
}
});
优点:
缺点:
答案 0 :(得分:2)
如果您需要为不同目的观看它们,请在不同的$ watch中观看。如果没有,你可以使用$ watchCollection。
否则,如果你想检查5个属性,你将有一个很长的功能做5个不同的事情(至少!)。最好保持他们有一个单一的责任。
除非你做了一个非常巨大的(太大了?)页面,否则有更多$ watch是没有的。