Javascript 角度工厂函数抛出错误,声称它不是';控制器中的一个函数
我以前见过几个这样的问题,但它们通常明显缺少注射,希望我的问题不是这样 作为我的应用程序的一部分,我正在尝试向服务器发出get请求,以返回模块列表 控制器 工厂 然而,我得到了指向控制器中函数调用的错误: 错误:modFact.getList不是函数 有什么想法吗?我遵循这篇博文提供的结构:Javascript 角度工厂函数抛出错误,声称它不是';控制器中的一个函数,javascript,angularjs,rest,Javascript,Angularjs,Rest,我以前见过几个这样的问题,但它们通常明显缺少注射,希望我的问题不是这样 作为我的应用程序的一部分,我正在尝试向服务器发出get请求,以返回模块列表 控制器 工厂 然而,我得到了指向控制器中函数调用的错误: 错误:modFact.getList不是函数 有什么想法吗?我遵循这篇博文提供的结构: 注入控制器的参数顺序似乎与您提供参数的顺序不匹配。在控制器中,名为modFact的实体实际上是angular的$http服务(它没有getList方法) (自由地使用缩进和换行来演示问题): 应该是: [
注入控制器的参数顺序似乎与您提供参数的顺序不匹配。在控制器中,名为
modFact
的实体实际上是angular的$http
服务(它没有getList
方法)
(自由地使用缩进和换行来演示问题):
应该是:
[ '$scope', '$http', 'quizIndexFactory', 'modFact',
function($scope, $http, quizIndexFactory, modFact) {
...
}]
我不知道争论/注射的顺序有多重要。这是一件非常明显的事情吗?我应该羞愧地删除这个问题吗?(非常感谢,这就解决了问题)@StraySheep——我不知道这对新来者来说是完全显而易见的。毕竟,您可以完全删除数组,如果不缩小代码,它仍然可以工作。您需要它的原因是,大多数人通过一个小型过滤器来输入代码,这会破坏名称。将名称写为
quizIndexFactory
,缩微器将其转换为a
。顺序很重要,因此angular可以知道a
是什么,即使在迷你们完成它的工作后也是如此。啊,这是有道理的。是的,我会坚持下去。希望我能给你投票,我感谢你的迅速反应。
app.factory('modFact', ['$http', function($http){
var modFact = {};
modFact.getList = function() {
console.log("success");
return $http.get('http://localhost:3000/module');
};
return modFact;
}]);
[ '$scope','modFact','quizIndexFactory', '$http',
function($scope, $http, quizIndexFactory, modFact) {
...
}]
[ '$scope', '$http', 'quizIndexFactory', 'modFact',
function($scope, $http, quizIndexFactory, modFact) {
...
}]