$ scope$ apply()有什么作用?

【字号: 日期:2024-04-11浏览:24作者:雯心
(adsbygoogle = window.adsbygoogle || []).push({}); 如何解决$ scope$ apply()有什么作用??

从Angular文档:

$apply()用于从角度框架外部以角度执行表达式。(例如,来自浏览器DOM事件,setTimeout,XHR或第三方库)。因为我们正在调用角度框架,所以我们需要执行异常处理的适当范围生命周期,并执行监视。

该文档还提供了它的伪代码:

function $apply(expr) { try { return $eval(expr); } catch (e) { $exceptionHandler(e); } finally { $root.$digest(); }}

简而言之,$apply对表达式求值并触发摘要循环,从而使Angular执行所有已注册的手表侦听器并更新任何视图绑定。

最后,您说过您一直在$apply更新模型的绑定,但这仅在更新来自Angular外部时才需要。在大多数情况下,您无需手动调用它。

解决方法

$scope.$apply()当我通过Angular应用中的websocket接收数据时,我一直在使用它来更新模型的绑定。但是它实际上是做什么的,为什么需要调用它才能完成更新?

相关文章: