控制器无法识别工厂

factory isnt recognized by controller

我有一个控制器,"ListController",需要用服务器端数据填充它。

app.controller("ListController", function(){ 
  var bar = this; 
  bar.venues = MyFactory.load(); 
}

我想从服务器获取 json 数组,所以我想创建一个利用“$http”的工厂:

app.factory("MyFactory", ["$https", function($https){
  var myService = {};
  myService.load = function(){
    $http.get("scripts/Query.php").success( function(rows){ 
      myService.rows = rows;
      return myService.rows;
    };
  };
  return myService;
}]);

所以,我认为可以从应用程序控制器内部调用 MyFactory。

app 是同一个变量,类型为:angular.module("BarMe", []);

我在 javascript 中遇到的错误是:MyFactory 未定义

你没有在控制器中注入工厂。

这样试试

app.controller("ListController", function(MyFactory){ 

}

此外你的方法有一个回调直接赋值不会给你带来任何数据

这样试试

MyFactory.load().then(function(data){
  bar.venues = data;
});

您还必须 return $http 以及工厂的响应

myService.load = function(){
   return $http.get("scripts/Query.php").success( function(rows){ 
      return rows;
    };
  };