scope obiekt w angularjs posiada specjalną metodę o nazwie $watch
do 'oglądania' właściwości zakresu.
Akceptuje wywołania zwrotnego, który otrzymuje nowe i stare wartości modelu
$scope.$watch('modelName', function(newValue, oldValue){
// Do anything you like here
});
Wywołanie zwrotne jest na inicjalizacji i za każdym razem modelowe zmian. Dlatego być może warto dodać dodatkowe sprawdzenie równości tak:
$scope.$watch('modelName', function(newValue, oldValue){
// Check if value has changes
if(newValue === oldValue){
return;
}
// Do anything you like here
});
To pozwala „oglądać” model i wykonać pewne działania w razie potrzeby.
Jedna dodatkowa uwaga: jeśli oglądasz model zawierający obiekt, powinieneś użyć dodatkowego trzeciego parametru, który mówi AngularJS, aby porównał obie wartości przez równość obiektu, a nie przez odniesienie (ponieważ referencja nie ulegnie zmianie, a tym samym nie wywoła obserwatora) tak:
$scope.$watch('modelName', function(newValue, oldValue){
// Do anything you like here
}, true); // Add extra 'true' parameter to check for object equality
można przeczytać więcej w dokumentacji na stronie AngularJS scope.
Nadzieję, że pomaga!
Oto jak działają obserwowalne w Angular2 https://ngforms.firebaseapp.com/#/43 – Failpunk