我有注射问题。
app.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,一切正常。但是我需要以正确的方式注入它。这有什么问题?
答案 0 :(得分:0)
注入器用于帮助AngularJS知道在变量名称发生变化时(例如,在最小化JavaScript之后)给出函数的参数顺序。
在您的情况下,您已经切换了注射器参数和方法签名的顺序,这意味着AngularJS会认为$scope
是$rootScope
,反之亦然。
删除$inject
或确保方法签名和注射阵列中的参数顺序相同。