我的控制器正在注入服务上调用方法,但该方法未定义。如果我console.log
来自控制器内的服务,它会给出一个空对象。
这是控制器:
(function(){
'use strict';
angular
.module('app.live')
.controller('LiveController', LiveController);
LiveController.$inject = ['Hubbub', '$scope'];
function LiveController(Hubbub, $scope){
$scope.loading = 1;
activate();
function activate() {
return Hubbub.getDebates().success(function(data){
console.log(data);
}).error(function(data){
console.log(data);
});
}
}
})();
服务的定义如下:
(function(){
'use strict';
angular
.module('app.api')
.constant('API_BASE_URL', 'http://localhost/hubbub/public/api/')
.service('Hubbub', Hubbub);
Hubbub.$inject = ['$http', 'API_BASE_URL'];
function Hubbub($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 Hubbub
})();
为什么不定义?
答案 0 :(得分:1)
看起来您的模块依赖项未正确设置,请将app.api
添加为依赖项。
angular.module('app.live',['app.api'])
答案 1 :(得分:0)
您有两个不同的角度模块。如果你想使用' Hubbub'在角度模块模块中提供服务(' app.live'),您需要将角度模块app.api声明为依赖项。
angular.module('app.live',['app.api']);