我有一个非常简单的服务和一个控制器试图从中获取一些信息,但我一直得到.methodName不是一个函数。
以下是服务 apiService.js :
(function (module) {
function api() {
var sharedService = {};
sharedService = {
getAll: function () {
return 'test';
}
};
return sharedService;
}
module.factory("api", api);
}(angular.module("anbud")));
然后我尝试在控制器中使用我的方法getAll,如下所示:
(function () {
'use strict';
angular.module('anbud')
.controller('BasicExampleCtrl', ['$scope', 'api', function (api, $scope) {
// on successfull request
function onJson(json) {
$scope.data = json;
}
// error getting json
function onError() {
throw 'error getting json';
}
function initialize() {
api.getAll()
.then(onJson, onError);
}
initialize();
}]);
}());
但我收到错误:
TypeError: api.getAll is not a function
at initialize (basic-example.js:67)
感谢任何帮助,谢谢。
答案 0 :(得分:3)
您已在controller
工厂函数中交换了依赖关系序列,在注入函数时,序列必须与DI array
中包含的序列相同。
<强>代码强>
.controller('BasicExampleCtrl', ['$scope', 'api', function ($scope, api) { //<- first $scope then api.
答案 1 :(得分:1)
尝试这样:
.controller('BasicExampleCtrl', ['$scope', 'api', function ($scope,api) {