什么时候应该使用角度$watch函数,什么时候应该使用ng-changeangularjs指令?对我来说,他们都可以做同样的事情。
$watch
ng-change
两者之间是否有差异或使用方式?
显然,它们并不相同。一种仅在控制器中使用;另一种仅用于控制器。另一个是对输入元素的指令。
但是即使在它们的应用中,它们也有所不同。
使用$watch监视的表达式时,将在每个摘要循环上对其进行评估,如果有更改,则将调用处理程序。
使用ng-change,响应事件,显式调用处理程序。
使用$watch,更改可以来自任何地方:用户操作,控制器功能,服务-所有这些都会触发处理程序。
使用ng-change,更改仅限于用户对特定输入元素的操作。
还值得指出的是ng-change作品 只有 与组合ng-model-换句话说,该ng- change表达式只有当评估ngModel.$viewValue(参考ngModelController文档获取更多信息)被改变,这通常发生在响应用户启动的事件。
ng-model
ng- change
ngModel.$viewValue
ngModelController