如何将服务注入我的路由器,以便其结果(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();
}];
}
答案 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()的结果)。编辑使用正确的服务名称等。