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

标签 javascript angularjs

我正在编写一个 Controller ,它对给定 Controller 属性更改的更新使用react。我正在为其编写测试,但我意识到 $watch 回调是在更新模型的代码之前被调用的。

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

在我看来,$watch 回调在 Controller 实例化期间被调用,并且表达式观察器未配置,等等。

大家觉得怎么样?

最佳答案

好吧,scope.$watch 应该做到这一点,立即启动。这就是最初的更新。它会进行初始触发,然后任何后续触发只会因为真正的变化而发生。如果 newValue === oldValue,您可以检测初始运行,其中这些是 watch 回调的第一个和第二个参数。

至于为什么它不再被调用,您是否在正常的 Angular 上下文之外更改了作用域属性?如果是这样,您将需要一个 scope.$apply

关于javascript - $watch 回调在表达式求值之前执行,不再执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13922495/

相关文章:

javascript - 在AngularJS中的服务中的函数之间传递变量

javascript - AngularJs:两个嵌套的子状态但不同的 View

javascript - HTML <a> 元素 : What is meant by the exploitation of the window. opener API?

php - Javascript cookie 与 php cookie

javascript - 如何在 Angular 应用程序中注入(inject) $stateProvider?

Javascript:发现给定条件为真后,如何在标签内添加 HTML 代码?

javascript - 使用 AngularJS 切片字符串

javascript - jQuery 输入 url 并将内容加载到 div 中

javascript - 带有 jQ​​uery 代码链接的 Bootstrap 按钮在多次单击后不更新按钮文本

javascript - 密码验证脚本不起作用