Do oglądania zmiennej zakresu obiektu, czy $scope.$watch
z objectEquality
jest ustawiona na true OR $scope.$watchCollection
lepiej?
Dla zmiennej $scope
obiektu (jak 15 atrybutów, niektóre zagnieżdżone 2 poziomy głębokości) aktualizowane z elementów wejściowych i ng-model
w widoku, jak źle jest $scope.$watch
z objectEquality
zestaw do true
? Czy jest to wielka rzecz, której należy unikać?
Czy lepszym rozwiązaniem jest ?
Poszukuję łatwych wygranych w celu poprawy wydajności mojej aplikacji AngularJS (nadal utknąłem w wersji 1.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 ...
bardzo dokładną !! – wbeange
Nie jestem pewien, co masz na myśli przez '$ watchCollection (..., true)', ponieważ funkcja nie przyjmuje argumentu logicznego (np. ObjectEquality) takiego jak '$ watch'. – tamakisquare
@tamakisquare Zrobiłem poprawkę i dodatkowe aktualizacje, aby były jaśniejsze. W tym aktualizacja JS Fiddle. –