2

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

我的第一个想法是使用:

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

但是异步和承诺的性质意味着配置文件可以在其他所有内容之后加载。

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

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

它返回一个 JSON 全局变量,如:

var userProfile = { ... };

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

这很好用,但看起来很脏。

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

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

4

1 回答 1

0

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

你需要准备什么:

  1. ng-app="XXX"从您的文档中删除。
  2. angular.bootstrap()一切准备就绪后打电话。

angular.bootstrap() 的文档

于 2014-01-27T22:15:57.273 回答