延迟AngularJS中的整个页面加载,直到服务的ajax完成

Dyn*_*lon 12 javascript ajax pageload deferred angularjs

我的configServiceAngularJS项目中只有一个通过ajax请求从服务器获取整个项目的一些配置值,即在激活帐户之前是否需要对用户进行审核.

要根据配置显示信息,应延迟整个第一页加载,直到此ajax请求完成.我的服务看起来像:

angular.module('clientApp').factory('configService', function ($http) {
    var configService = {};
    var conf = {};

    Object.defineProperty(configService, 'serverConfig', {
        get: function () {
            return conf;
        }
    });

    $http.get('/api/config').success(function (data) {
        conf = $.extend(conf, data);
    });

    return configService;
});
Run Code Online (Sandbox Code Playgroud)

因此,由于服务是单例,因此只在页面加载时执行一次,而不是在每次路由更改时执行.

现在我知道如何使用$q和承诺,但我的问题是如何推迟执行所有角度,直到此服务完成其请求?我的大多数视图都需要来自configService.serverConfig特定行为的值并依赖于它 - 以异步方式执行此操作并且defered.then()在每个控制器中都有一个看起来不是最好的想法.

Lau*_*Skr 3

<html ng-app="yourApp">

angular.element(document).ready(function() {
  angular.bootstrap(document, ["yourApp"]);
});
Run Code Online (Sandbox Code Playgroud)

也许手动引导应用程序可以帮助......?

如果情况并非如此,请查看这篇文章! 延迟 AngularJS 路由更改直到模型加载以防止闪烁