一尘不染

何时在Angularjs中使用$ watch或ng-change

angularjs

什么时候应该使用角度$watch函数,什么时候应该使用ng-changeangularjs指令?对我来说,他们都可以做同样的事情。

两者之间是否有差异或使用方式?


阅读 206

收藏
2020-07-04

共1个答案

一尘不染

显然,它们并不相同。一种仅在控制器中使用;另一种仅用于控制器。另一个是对输入元素的指令。

但是即使在它们的应用中,它们也有所不同。

使用$watch监视的表达式时,将在每个摘要循环上对其进行评估,如果有更改,则将调用处理程序。

使用ng-change,响应事件,显式调用处理程序。

使用$watch,更改可以来自任何地方:用户操作,控制器功能,服务-所有这些都会触发处理程序。

使用ng-change,更改仅限于用户对特定输入元素的操作。

还值得指出的是ng-change作品 只有 与组合ng-model-换句话说,该ng- change表达式只有当评估ngModel.$viewValue(参考ngModelController文档获取更多信息)被改变,这通常发生在响应用户启动的事件。

2020-07-04