相关疑难解决方法(0)

Angular工厂返回承诺

当我的应用程序启动时,我从服务器加载一些设置.在做任何有用的事情之前,我的大多数控制器都需要这个.我想尽可能地简化控制器的代码.我的尝试无效,是这样的:

app.factory('settings', ['$rootScope', '$http', '$q', function($rootScope, $http, $q) {
    var deferred = $q.defer();

    $http.get('/api/public/settings/get').success(function(data) {
        $rootScope.settings = data;
        deferred.resolve();
    });

    return deferred.promise;
}]);

app.controller('SomeCtrl', ['$rootScope', 'settings', function($rootScope, settings) {
    // Here I want settings to be available
}]);
Run Code Online (Sandbox Code Playgroud)

我想避免有很多settings.then(function()...)无处不在.

关于如何以一种很好的方式解决这个问题的任何想法?

angularjs

31
推荐指数
2
解决办法
2万
查看次数

标签 统计

angularjs ×1