在引导(或配置)角度应用之前的POST请求

时间:2013-07-08 09:30:03

标签: javascript asynchronous angularjs

我需要在启动角度应用程序之前从服务器接收一些数据(将设置为所有angular的http标头的accessToken)。

我试着在应用程序的配置部分提出这个请求没有运气:(也许它可以制作两个角度应用程序,像这样((!)几乎伪代码)

boot.js

var boot = angular.module('boot', []);
boot.getToken = function (callback) {
   boot.callback = callback;
};
boot.run(function ($http) {
   $http.post('/api/login', data).success(function (res) {
     // res.token save to storage/cookies etc.
     boot.callback();
   }); 
});

主app.js开始& bootstrap app等。

app.js

var app = angular.module('app', ['services', 'controllers', 'directives']);

app.init = function () {
  angular.bootstrap(document, ['app']);
};
...

并在我的require的main.js文件中:

main.js

...
require(['app', 'boot'], function (app, boot) {
  boot.getToken(function () {
    app.init();
  });
});

主要问题是我需要引导boot.js以使用所有角度的API ..

1 个答案:

答案 0 :(得分:0)

找到解决方案,可能对某人有帮助 - 在resolve方法上使用$routeProvider.when()选项 - 它允许您在将数据从服务器预加载到控制器之前检查并发出必要的请求。