2016-02-12 55 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?

相关问题