代码之家  ›  专栏  ›  技术社区  ›  user3127415

Restangular没有方法1。角度

  •  0
  • user3127415  · 技术社区  · 10 年前

    我注射有问题。

    应用程序.js

    angular.module('Help', []);
    var app = angular.module('app', [
        'restangular'
        ,'Help'
    ]); 
    app.$inject = ['RestangularProvider']; 
    app.config(
        function(RestangularProvider) {
            RestangularProvider.setBaseUrl('http://localhost:8080/api');
        }
    )
    

    help.js

    function HelpCtrl($rootScope, $scope, Restangular){
     Restangular.one('questions').getList();
    }
    HelpCtrl.$inject = ['$scope', '$rootScope','Restangular'];  //"TAG1"
    angular.module('Help').controller("HelpCtrl", HelpCtrl); 
    

    我收到以下错误:

    Uncaught TypeError: Object [object Object] has no method 'one' 
    

    如果我删除行TAG1,一切都正常。然而,我需要以正确的方式注入它。这里有什么问题?

    1 回复  |  直到 10 年前
        1
  •  0
  •   kba    10 年前

    注入器用于帮助AngularJS在变量名称发生变化时(例如,在最小化JavaScript之后)知道赋予函数的参数顺序。

    在您的例子中,您已经切换了注射器参数和方法签名的顺序,这意味着AngularJS会认为 $scope $rootScope 反之亦然。

    删除您的 $inject 或者确保参数在方法签名和注入数组中的顺序相同。