如何在AngularJS中创建工厂?

时间:2017-04-03 07:09:27

标签: javascript angularjs

我在角度创建了一个工厂,但是我收到了以下错误

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);
}])

我可以做些什么来解决这个问题?我只是没有看到任何问题。

4 个答案:

答案 0 :(得分:1)

不需要范围,您的工厂注入应如下所示

from datetime import datetime

db[col].count({'CreatedAt': {'$lt': datetime.datetime(2017, 3, 28)}})
var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope, getFoo) {
   $scope.myArr = getFoo.getCommi(4,1);
  
});

app.factory('getFoo', function () {
  return {
       getCommi: function(val,id){
          var array = ["hello","world"];
          return array;
       }
     } 
});    

答案 1 :(得分:0)

您只需要从工厂中删除$scope

working fiddle link

答案 2 :(得分:0)

从工厂中删除$ scope并在工具的运行模块中添加工厂“getFoo”作为依赖项,如下所示:

app.run(['$ rootScope','$ location','getFoo',function($ rootScope,$ location,getFoo){

}]);

答案 3 :(得分:0)

请从工厂中删除 $ scope

<select style="font-size:15px" ng-model="activity" value="Enter activity" id="bactivity">
            <option selected>select</option>
            <option value="Fitness">Fitness</option>
            <option value="Aerobics">Aerobics</option>
            <option value="Dance">Dance</option>
            <option value="Martial arts">Martial arts</option>
            <option value="Boxing">Boxing</option>
            <option value="Athletics">Athletics</option>
        </select>