プロジェクトでangular uiルーターとコーチポテトを使用します。uiルーターの状態をサーバー側からロードし、angular app.Configの状態プロバイダーに追加したいのですが、$httpサービスをapp.Config関数に注入することはできません.私のコードは次のようになります:
var app = angular.module('app', [ 'ui.router.compat']);
app.config(['$stateProvider', '$routeProvider', '$urlRouterProvider', '$http',
function ($stateProvider, $routeProvider, $urlRouterProvider, $http) {
$urlRouterProvider
.when('/c?id', '/contacts/:id')
.otherwise('/');
$routeProvider
.when('/user/:id', {
redirectTo: '/contacts/:id'
});
var get = $http.get('/api/Values/');
get.success(function (data) {
list = data.result;
});
var populateStates = function () {
angular.forEach(list, function(item) {
$stateProvider.state(item);
angular.forEach(item.subMenus, function(sub) {
$stateProvider.state(sub);
});
});
};
populateStates();
}]);
app.Config でサーバーからデータ (状態) を取得する方法