我已经设置了一个单独的模块来包含api服务,我试图将其注入我的路由配置中。但我得到了上述错误。这是相关代码:
/***********
* app module
************/
(function(){
'use strict';
angular
.module('app', [
/***************
* Vendor modules
****************/
'ui.router',
'ngCookies',
'ngSanitize',
/***************
* Custom modules
****************/
'app.auth',
'app.debates',
'app.api'
]);
})();
/***********
* api module
************/
(function(){
'use strict';
angular
.module('app.api', []);
})();
/************
* api service
************/
(function(){
'use strict';
angular
.module('app.api')
.constant('API_BASE_URL', 'http://localhost:8000/api/')
.service('Api', Api);
Api.$inject = ['$http', 'API_BASE_URL'];
function Api($http, API_BASE_URL){
var service = {
getDebates: getDebates
};
return service;
/* ********************************
* Method: getDebates
******************************** */
function getDebates() {
var request = {
method: 'GET',
url: API_BASE_URL + 'debates',
headers: {
'Content-Type': 'application/json',
'Accept': 'application/json'
}
};
return $http(request);
}
} // function Api
})();
然后在主app
模块的路由配置中,我拉入Api服务,以便在每个州的解析方法中使用它:
(function(){
'use strict';
angular
.module('app')
.config(routes);
routes.$inject = ['$stateProvider', '$urlRouterProvider', '$locationProvider', '$httpProvider', 'Api'];
function routes($stateProvider, $urlRouterProvider, $locationProvider, $httpProvider, Api) {
我确定我错过了一些简单的事情,但我无法找到它。
答案 0 :(得分:0)
Angular config
部分只能使用提供者和常量(在您的情况下,您使用的是service
。
- 配置块 - 在提供商注册和配置阶段执行。只有提供程序和常量才能注入配置块。这是为了防止在完全配置服务之前意外实例化服务。
醇>
您可以将服务转换为提供商see here或以其他方式注入您的服务。