【问题标题】:When to use $watch or ng-change in Angularjs何时在 Angularjs 中使用 $watch 或 ng-change
【发布时间】:2015-04-03 12:45:19
【问题描述】:

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

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

【问题讨论】:

  • $watch 和 ng-change 做的事情大致相同,但它们的用例不同。
  • $watch 将检查值(旧的和新的)并在每次任何导致 Angular $digest 循环运行时进行比较。使用 ng-change 做的事情大致相同,但我相信使用它在语法上更正确。
  • 另一个类似的问题:stackoverflow.com/questions/19007281/…

标签: javascript angularjs angularjs-ng-change


【解决方案1】:

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

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

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

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

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

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

还值得注意的是,ng-changeng-model 结合使用 - 换句话说,ng-change 表达式仅在 ngModel.$viewValue 时计算(请参阅 @987654321 @documentation 了解更多信息)已更改,这通常发生在响应用户发起的事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 2015-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多