$scope.$evalAsync 与 $scope.$applyAsync

问题描述 投票:0回答:2

$evalAsync 和 $applyAsync 有什么区别?我的理解是,当我从指令中使用 $evalAsync 时,表达式将在浏览器呈现之前进行计算。

举个例子,如果我想滚动到页面上的特定位置但不显示跳转到该位置,我可以使用它滚动到该位置,并且由于它在浏览器渲染之前触发,因此这个视觉错误会走吧。

但是,applyAsync 的目的是什么?什么时候使用其中一个而不是另一个是个好主意?

angularjs dom
2个回答
9
投票

那个

$evalAsync()

将在当前摘要中执行

$applyAsync()

在预定的时间里。

如果您需要详细信息: Ben Nadel堆叠在这里


2
投票

这就是我一直在使用 $applyAsync 的目的。基本上,我将其用作安全的 $apply。您知道当摘要已经在进行中时尝试触发摘要时会出现恼人的错误吗?如果您使用 $applyAsync,您将获得另一个摘要,但它将在当前摘要周期完成时发生。

$applyAsync 也很酷,因为您可以批量处理一堆回调以在下一个摘要中触发。

© www.soinside.com 2019 - 2024. All rights reserved.