角度js。在路由器

时间:2016-06-16 11:31:37

标签: javascript angularjs

如何将服务注入我的路由器,以便其结果(json)可以在整个应用程序中使用?

路由器:

export default ['$stateProvider', '$urlRouterProvider', function($stateProvider, $urlRouterProvider, MainController, ConfigService) {

$stateProvider.state('home', {
    url: '/',
    controller: 'MainController',
    resolve: {

      /* @ngInject */
      someResolve: (ConfigService) =>
        ConfigService.config()
    }
});

$urlRouterProvider.otherwise('/');
}];

服务:

export default function ConfigService() {
return ['$http', function($http) {

    this.config = function() {
        return $http({
            url: '../json/config.json',
            method: 'GET'
        }).then(function(result) {
            console.log(result);
        });
    };
}];
}

Maincontroller

export default function MainController () {
return ['$scope','$location','ConfigService','$window', function($scope, $location, ConfigService, $window) {

    ConfigService.config();

}];
}

2 个答案:

答案 0 :(得分:1)

MainController和ConfigService没有指定任何提供程序......您的语句应该像

export default ['$stateProvider', '$urlRouterProvider','MainController', 'ConfigService', function($stateProvider, $urlRouterProvider, MainController, ConfigService) {}

答案 1 :(得分:0)

解决问题。

$stateProvider.state('home', {
    url: '/',
    controller: 'MainController',
    resolve: {

      /* @ngInject */
      someResolve: (ConfigService) =>
        ConfigService.config()
    }
});

然后可以将'ConfigService'注入控制器并使用(config()的结果)。编辑使用正确的服务名称等。