在$evalAsync队列用于一个需要出现当前堆栈帧外的时间表工作,但浏览器的视图之前渲染。- http://docs.angularjs.org/guide/concepts#runtime
好吧,那么什么是“堆栈框架”?Github评论揭示了更多:
如果您从控制器入队,那么它将在之前,但是如果您从指令入队,则它将在之后。-
https://github.com/angular/angular.js/issues/734#issuecomment-3675158
上面,Misko正在讨论何时运行由$evalAsync排队等待执行的代码,以及Angular更新DOM的时间。我建议也阅读Github的两条评论,以获取完整的内容。
因此, 如果使用指令中的$evalAsync将代码放入队列中,则它应在Angular操纵DOM之后但在浏览器呈现之前运行。如果您需要在浏览器渲染后或控制器更新模型后运行某些程序,请使用
$timeout(...,0);
另请参见,该示例还提供了一个使用$evalAsync()的小提琴示例。



