【问题标题】:Execute function after page has finished downloading and bootstrapping页面完成下载和引导后执行功能
【发布时间】:2013-01-16 21:24:02
【问题描述】:

我已经尝试过 $evalAsync 和 $viewContentLoaded 并且所有这些事情似乎都在 Angular 完成填充模板时启动。

我想要做的是,在指令中:

  1. Angular 是否完成了模板替换?
  2. 所有图像和其他资产(由模板指定)是否已完成下载?
  3. 如果是这样,请执行此操作-->

我已经尝试了很多东西,但我只是想要一个关于如何以正确的 Angular 方式执行此操作的明确答案。

【问题讨论】:

    标签: javascript angularjs onload


    【解决方案1】:

    is there a post render callback for Angular JS directive?
    AngularJS - How to query the DOM when directive rendering is complete

    不幸的是,无法确定渲染何时完成(例如,没有事件发生)。使用 $timeout 似乎是唯一可用的解决方法。

    【讨论】:

    • 这似乎是一种解决方法:groups.google.com/d/msg/angular/PCDBQORa0u4/6JduMxYFnQoJ 但我无法让它正常工作。
    • @dictions,您使用的是 ng-include 而不是指令模板吗?如果是这样,请查看$includeContentLoaded 是否有帮助。我相信该事件是在该 google 群组帖子之后的某个时间添加到 Angular 中的。
    • 我们正在使用路由和 ng-view。不是ng-include。这就是我尝试使用 $viewContentLoaded 的原因,我假设 ng-view 相当于 $includeContentLoaded。我似乎无法让它工作,但有人有一个工作的jsfiddle吗?该事件的具体调用时间是什么时候?
    • 试过了,几乎完美,但是在浏览器替换所有模板标签之前,直接触发了事件。我可以在不知道 ng-view 资源(imgs 等)何时完成下载的情况下进行处理,但是在 {{}} 被替换后是否直接触发了另一个事件?我知道你说过没有。我只是想覆盖我的基地。
    【解决方案2】:

    你可以试试这个指令来寻找所有嵌套的包含被加载到它们的内容中:

    http://www.sangwine.net/jim/index.php/2013/05/how-to-detect-when-all-your-nested-includes-have-loaded-their-content-in-angularjs/

    【讨论】:

      猜你喜欢
      • 2012-08-09
      • 2010-11-05
      • 2016-08-21
      • 2015-01-13
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      相关资源
      最近更新 更多