对于观察对象范围变量,$scope.$watch
设置objectEquality
为 true还是$scope.$watchCollection
更好?
对于$scope
使用输入元素和视图更新的对象变量(如 15 个属性,一些嵌套的 2 层深),设置为ng-model
有多糟糕?这是要避免的大事吗?$scope.$watch
objectEquality
true
有$watchCollection
更好的解决方案吗?
我正在寻找简单的胜利来提高我的 AngularJS 应用程序的性能(我仍然停留在 v1.2.2 上)。
// ctrl scope var
$scope.filters = {
name: '',
info: {test: '', foo: '', bar: ''},
yep: ''
// etc ...
}
// ctrl watch ?
$scope.$watch('filters', function(newVal, oldVal) {
if(newVal !== oldVal) {
// call with updated filters
}
}, true);
// or ctrl watch collection ?
$scope.$watchCollection('filters', function(newVal, oldVal) {
if(newVal !== oldVal) {
// call with updated filters
}
});
// view input with ng-model
<input type="text" ng-model="filters.name" />
<input type="text" ng-model="filters.info.test" />
<input type="text" ng-model="filters.yep" />
// etc ...