Tôi có thể thiết lập $ watch trên phạm vi AngularJS để được thông báo khi biểu thức tôi quan tâm thay đổi. Nhưng làm thế nào để ngừng xem một khi tôi mất hứng thú?
Câu trả lời:
Khi gọi $watch
một hàm được trả về mà hủy đăng ký biểu thức bị ràng buộc.
Ví dụ: để xem một biến foo
chỉ thay đổi một lần:
var unregister = $scope.$watch('foo', function () {
// Do something interesting here ...
unregister();
});
Hy vọng điều đó sẽ giúp :-)
foo
. Một chút lạc đề, nhưng tôi thấy nó đáng để đề cập.
Là một bình luận bổ sung, nhưng không phải là câu trả lời - đây cũng là nguyên tắc tương tự để giết người nghe sự kiện.
var unregister = $rootScope.$on("listen-for-something-cool", function($event, params) {
//Do cool stuff with params, then kill it
unregister();
};
Chỉ là một bổ sung mà tôi nghĩ sẽ rất thú vị cho bất kỳ ai khác biết ...