我的服务中有以下代码:
testApp.service('detailsService',['databaseService', 'loggedService', '$http', function(databaseService, loggedService, $http){
var details;
this.getDetails = function(name){
return $http({
method : "GET",
url : name
}).then(function(response) {
details= response.data;
console.log(response.data);
return response.data;
});
};
}]);
我想做的是在加载页面( View )时在我的 Controller 中调用此函数。
testApp.controller('testController', ['$scope', '$location', 'databaseService','detailsService', '$routeParams', function($scope, $location, databaseService, $routeParams, detailsService){
$scope.details;
var selectedDetails = function(name){
detailsService.getDetails(name).then(function(data){
$scope.details= data;
});
};
selectedDetails(name);
}]);
我一直收到错误 detailsService.getDetails is not a function。 我在另一个 Controller 中使用 detailsService 中的相同功能,没有任何问题。
有人知道为什么我总是收到这个错误吗?
最佳答案
错误是预期的,因为您没有正确注入(inject)依赖项,您需要使用正确的顺序。
testApp.controller('testController', ['$scope',
'$location',
'databaseService',
'detailsService',
'$routeParams',
function($scope, $location, databaseService, detailsService, $routeParams ){
代替
testApp.controller('testController', ['$scope',
'$location',
'databaseService',
'detailsService',
'$routeParams',
function($scope, $location, databaseService, $routeParams, detailsService){
注意字符串部分和函数参数都需要 1:1 匹配。
关于javascript - AngularJS TypeError 不是一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42923612/