Javascript 如何在AngularJS中创建工厂?
我已经在angular创建了一个工厂,但是我得到了以下错误Javascript 如何在AngularJS中创建工厂?,javascript,angularjs,Javascript,Angularjs,我已经在angular创建了一个工厂,但是我得到了以下错误 Unknown provider: 这是工厂: app.factory("getFoo", function($scope){ return { getCommi: function(val,id){ var array = ["hello","world"]; return array; } } }); 控制器是: app.controlle
Unknown provider:
这是工厂:
app.factory("getFoo", function($scope){
return {
getCommi: function(val,id){
var array = ["hello","world"];
return array;
}
}
});
控制器是:
app.controller('myCtrl', ['$scope','getFoo',function($scope,getFoo){
$scope.myArr = getFoo.getCommi(4,1);
}])
我要怎么做才能解决这个问题?我看不出有什么问题。您只需要从工厂中删除
$scope
不需要范围,您的工厂注射应如下所示
var-app=angular.module('plunker',[]);
应用程序控制器('MainCtrl',函数($scope,getFoo){
$scope.myArr=getFoo.getCommi(4,1);
});
应用程序工厂('getFoo',函数(){
返回{
getCommi:函数(val,id){
var数组=[“你好”,“世界”];
返回数组;
}
}
}); 代码>
安古拉斯普朗克
文件。写(“”);
{{myArr}}
从工厂中删除$scope,并在应用程序的运行模块中添加工厂“getFoo”作为依赖项,如下所示:
运行(['$rootScope','$location','getFoo',函数($rootScope,$location,getFoo){
}])) 请从工厂移除$scope
var app = angular.module('myApp',[]);
app.factory("getFoo", function(){
return {
getCommi: function(val,id){
var array = ["hello","world"];
return array;
}
}
});
app.controller('myCtrl', ['$scope','getFoo',function($scope,getFoo){
$scope.myArr = getFoo.getCommi(4,1);
}])
您是否已将工厂注入控制器?是否已将工厂添加到模块(例如,angular.module('app')
)?我已编辑控制器的外观。我没有将工厂添加到我的模块中,也没有将$scope
注入getFoo
感谢artur grzesiak,我从工厂中删除了$scope,它可以工作了!