如何在JSON加载之前停止角度执行?

时间:2014-07-24 22:09:24

标签: javascript json angularjs asynchronous synchronous

我有一个角度应用程序,需要从一些JSON加载应用程序配置数据,这包含在一个服务中,该服务被注入到控制器中。问题是我需要控制器等到json成功加载。换句话说,同步加载它。我想提出这个json文件的请求,并让应用程序 nothing ,直到我们找回它为止。我不知道"正确的角度"这样做的方法是,建议?

1 个答案:

答案 0 :(得分:3)

使用angular.bootstrap()初始化应用。

var myApp = angular.module('myApp', []);
//declare the rest of myApp, e.g. myApp.controller(...

angular.element(document).ready(function() {
    jQuery.getJSON('/api/my-app/config', function(data) {
        //do whatever you wish with `data`
        angular.bootstrap(document.getElementById('my-app'), ['myApp']);
    });        
});

注:

  • 随意使用任何其他方法获取您的配置JSON,不必是jQuery.getJSON()
  • 而不是angular.element(document).ready()中的两个嵌套回调和AJAX调用, 考虑使用承诺,以便它们可以同时发生
  • 此代码未经测试,您可能需要稍微调整一下