javascript - AngularJS TypeError 不是一个函数

标签 javascript angularjs

我的服务中有以下代码:

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);

}]);

我一直收到错误 detailsS​​ervice.getDetails is not a function。 我在另一个 Controller 中使用 detailsS​​ervice 中的相同功能,没有任何问题。

有人知道为什么我总是收到这个错误吗?

最佳答案

错误是预期的,因为您没有正确注入(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/

相关文章:

binding - AngularJS如何绑定(bind) map

jquery - "tabindex > 0"元素的 CSS 选择器

javascript - 如何为动态网页创建google amp?

javascript - 正则表达式模式不只验证一个字符

java - 使用 Angularjs 将文件上传到 SpringMVC 时出现错误状态 415

javascript - 来自 ng-repeat 的值溢出响应 View 中的屏幕大小 : AngularJS

javascript - 具有隔离范围 : How to set ngModel to the correct scope? 的指令中的表单输入

javascript - 如何从数组中提取对象并自动将它们放入变量中?

javascript - Backbone.js 事件处理程序不工作

javascript - AngularJS:$watch 服务中的其他服务