Ich kann eine $ watch für einen AngularJS-Bereich einrichten, um benachrichtigt zu werden, wenn sich der Ausdruck, an dem ich interessiert bin, geändert hat. Aber wie höre ich auf zu schauen, wenn ich das Interesse verliere?
Antworten:
Beim Aufruf wird $watch
eine Funktion zurückgegeben, die die Registrierung des gebundenen Ausdrucks aufhebt.
Um zu sehen, wie sich eine Variable foo
nur einmal ändert:
var unregister = $scope.$watch('foo', function () {
// Do something interesting here ...
unregister();
});
Hoffentlich hilft das :-)
foo
. Ein bisschen abseits des Themas, aber ich dachte, es ist erwähnenswert.
Als zusätzlicher Kommentar, aber nicht als Antwort - dies ist das gleiche Prinzip, um auch Event-Listener zu töten.
var unregister = $rootScope.$on("listen-for-something-cool", function($event, params) {
//Do cool stuff with params, then kill it
unregister();
};
Nur eine Ergänzung, von der ich dachte, dass sie für alle anderen cool wäre ...