43

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

它们之间有什么区别或使用模式吗?

4

1 回答 1

91

显然,它们不一样。一个是单独在控制器中使用的;另一个是关于输入元素的指令。

但即使在他们的应用程序中,它们也不同。

当您使用$watch被监视的表达式时,将在每个摘要周期上进行评估,如果有变化,则调用处理程序。

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

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

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

还值得注意的是,它只能ng-change与-结合使用,换句话说,表达式仅在(请参阅文档以获取更多信息)更改时进行评估,这通常发生在响应用户启动的事件时。ng-modelng-changengModel.$viewValuengModelController

于 2015-02-04T05:08:21.093 回答