Javascript $watch回调在表达式求值之前执行,不再执行

Javascript $watch回调在表达式求值之前执行,不再执行,javascript,angularjs,Javascript,Angularjs,我正在编写一个控制器,它对给定控制器属性更改的更新做出反应。我正在为它编写测试,但我意识到$watch回调是在更新模型的代码之前被调用的 此外,在过早调用$watch回调和更新模型的代码之后,不会再次调用$watch回调 在我看来,$watch回调在控制器实例化期间被调用,而表达式观察器没有配置,诸如此类 你们觉得怎么样?好吧,范围。$watch应该会这样做,马上开火。这是最初的更新。它进行初始点火,然后任何后续点火只会因为实际变化而发生。如果newValue===oldValue,则可以检测初

我正在编写一个控制器,它对给定控制器属性更改的更新做出反应。我正在为它编写测试,但我意识到$watch回调是在更新模型的代码之前被调用的

此外,在过早调用$watch回调和更新模型的代码之后,不会再次调用$watch回调

在我看来,$watch回调在控制器实例化期间被调用,而表达式观察器没有配置,诸如此类


你们觉得怎么样?

好吧,
范围。$watch
应该会这样做,马上开火。这是最初的更新。它进行初始点火,然后任何后续点火只会因为实际变化而发生。如果
newValue===oldValue
,则可以检测初始运行,其中这些是手表回调的第一个和第二个参数

至于为什么不再调用它,您是否在正常角度上下文之外更改了范围属性?如果是这样,您将需要一个
范围。$apply