有没有办法阻止角度服务注入,直到加载服务的异步数据

时间:2014-01-29 14:40:27

标签: angularjs service promise inject

我有'userSessionDataService'。这将从服务器获取用户的详细信息(仅限ONCE)。

我希望在调用服务时可以访问用户数据,但不需要在promise上调用.then()。

根据我的理解,角度不支持。服务的调用者必须始终使用promise来访问异步加载的数据(例如,通过ajax)。

1 个答案:

答案 0 :(得分:3)

您可能会发现手动引导非常有用,就像我为本地化所做的那样:

$(function(){
    $.ajax({
        url: "/GetResources",
        type: "POST",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function(result) {
            var mn = 'app';
            angular.module(mn).value('Resources', result);
            angular.bootstrap(document, [mn]);
        }
    });
});

资源始终以这种方式提供:

angular.module('app').run(function($rootScope, Resources){
     $rootScope.resources = Resources;
});