AngularJS在app启动时加载数据

时间:2013-08-21 08:37:17

标签: javascript angularjs

我有一个必须在AngularJS启动时(或之前)加载的对象(它是用户的权限配置文件,隐藏/显示部分用户界面,检查也在服务器端完成)。

我的第一个想法是使用:

module.run(function() {... })

但async和promises的性质意味着可以在其他所有内容之后加载配置文件。

我的下一个想法是将配置文件内联为脚本元素:

<script type="text/javascript" src="/api/user-profile"></script>

返回JSON全局变量,如:

var userProfile = { ... };

然后在module.run()期间将用户配置文件放入根范围。

效果很好,但看起来很脏。

基本上,我想在Angular启动之前或期间加载数据,就像你在路由中解析一样,因为它在继续之前等待。

有更清洁的方法吗?也许是某种Angular服务?

1 个答案:

答案 0 :(得分:0)

您可以使用angular.bootstrap手动启动Angular.js。这样您就可以先加载数据,然后在准备就绪时加载。调用angular.bootstrap()启动角度模块。

你必须准备什么:

  1. 从文档中删除ng-app="XXX"
  2. 一切准备就绪后致电angular.bootstrap()
  3. Doc for angular.bootstrap()