是否可以在AngularJS中执行范围。$ apply而不触发范围。$ watch?怎么能实现这一目标?我想更新模型,但不要在特定情况下点击$ watch。
答案 0 :(得分:1)
不,不是。当您调用apply时,它将创建一个新的摘要循环,该循环将遍历通过该应用程序注册的所有观察者。更新模型基本上是触发手表。
也许你可以在你的$ watch中捕捉到这个更新,或者做一些聪明的事情,比如当你调用$ apply然后再次注册时取消注册。
如果您发布您想要实现的内容,也许值得。
PS:如果你想调用$ apply,最安全的方法是使用$ evalAsync包围你想要评估的任何代码。