angularjs $scope.$evalAsync与$scope.$applyAsync

5lhxktic  于 2023-09-30  发布在  Angular
关注(0)|答案(2)|浏览(170)

$evalAsync和$applyAsync有什么区别?我的理解是,当我从指令中使用$evalAsync时,表达式将在浏览器呈现之前进行计算。
举个例子,如果我想滚动到页面上的一个特定位置,但不显示跳转到该位置,我可以使用它来滚动到该位置,因为它在浏览器渲染之前就触发了,这个视觉错误就消失了。
但是,applyAsync的目的是什么?什么时候使用一个而不是另一个是个好主意?

vd8tlhqk

vd8tlhqk1#

$evalAsync()

将在当前摘要中执行

$applyAsync()

在一个预定的。
如果您需要详细信息:Ben Nadelstack here

r1wp621o

r1wp621o2#

下面是我使用$applyAsync的原因。基本上,我用这个作为一个安全的$申请。你知道当你试图在一个摘要已经在进行时触发一个恼人的错误吗?如果使用$applyAsync,您将获得另一个摘要,但它将在当前摘要周期完成后发生。
$applyAsync也很酷,因为你可以批量处理一堆回调函数,然后在下一个摘要中触发。

相关问题