2016-02-12 18 views
1

就像標題所說,我想知道何時scope變量不能被自動監視?如果我想監視它們的值變化,是否應該手動觀察模板中未指定的所有範圍變量是否正確?

感謝

回答

2

你並不需要任何$watch變量或作用域屬性,除非你想被通知他們改變的時候。

Angular隱含地將$watch放置在模板中引用的表達式上,即{{ x + y }}將在$scope.x + $scope.y的結果中放置手錶。當這些觀察者開火時,Angular知道更新視圖。

+0

謝謝你,所以我的理解是基本正確的,如果我要監控範圍變量(未在模板中指定)的變化,我需要手動觀看他們? – Kuan

+0

正確。即使變量**是在模板中指定的,您也不能「鉤入」Angular的觀察者來執行一些自定義任務。無論何時您需要收到有關範圍表達式更改的通知(無論它是否位於模板中),您都必須在其上放置手動監視。 –

0

所有綁定的變量是由角的注視下,你不需要說你要看着他們,但不是所有範圍變量通過角觀看

看着一個變量意味着當變量的值發生變化時你會得到通知。例如,當總數大於10美元時,您可以顯示彈出窗口。然後你觀察總變量並執行操作(顯示彈出窗口)。

你可以閱讀這個問題,並瞭解更多關於手錶和角度:How do I use $scope.$watch and $scope.$apply in AngularJS?

相關問題