何时在Angularjs中使用$ watch或ng-change
什么时候应该使用angular $watch
函数,以及何时使用ng-change
angularjs指令? 对我而言,他们都可以这样做。
他们之间有任何差异或使用模式?
他们是不一样的,显然。 一个仅在控制器中使用; 另一个是input元素的指令。
但即使在他们的应用程序,他们不同
当使用$watch
,将在每个摘要循环中评估监视的expression式,如果发生更改,则调用该处理程序。
使用ng-change
,处理程序被显式调用以响应事件。
使用$watch
,更改可以来自任何地方:用户操作,控制器函数,服务 – 都将触发处理程序。
使用ng-change
,更改被限制在特定input元素上的用户操作。
值得注意的是, ng-change
只能和ng-model
– 换句话说, ng-change
expression式只有在ngModel.$viewValue
时才被评估ngModel.$viewValue
(参考ngModelController
文档获取更多信息)响应于用户发起的事件而发生。