就像標題所說,我想知道何時scope變量不能被自動監視?如果我想監視它們的值變化,是否應該手動觀察模板中未指定的所有範圍變量是否正確?
感謝
就像標題所說,我想知道何時scope變量不能被自動監視?如果我想監視它們的值變化,是否應該手動觀察模板中未指定的所有範圍變量是否正確?
感謝
你並不需要到任何$watch
變量或作用域屬性,除非你想被通知他們改變的時候。
Angular隱含地將$watch
放置在模板中引用的表達式上,即{{ x + y }}
將在$scope.x + $scope.y
的結果中放置手錶。當這些觀察者開火時,Angular知道更新視圖。
所有綁定的變量是由角的注視下,你不需要說你要看着他們,但不是所有範圍變量通過角觀看。
看着一個變量意味着當變量的值發生變化時你會得到通知。例如,當總數大於10美元時,您可以顯示彈出窗口。然後你觀察總變量並執行操作(顯示彈出窗口)。
你可以閱讀這個問題,並瞭解更多關於手錶和角度:How do I use $scope.$watch and $scope.$apply in AngularJS?
謝謝你,所以我的理解是基本正確的,如果我要監控範圍變量(未在模板中指定)的變化,我需要手動觀看他們? – Kuan
正確。即使變量**是在模板中指定的,您也不能「鉤入」Angular的觀察者來執行一些自定義任務。無論何時您需要收到有關範圍表達式更改的通知(無論它是否位於模板中),您都必須在其上放置手動監視。 –