工厂不被控制器认可

时间:2015-12-08 02:27:15

标签: angularjs angularjs-controller angularjs-factory

我有一个控制器“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控制器内部调用。

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

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

1 个答案:

答案 0 :(得分:1)

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

试试这个

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

}

更多关于您的方法的回调直接分配不会为您带来任何数据

试试这个

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

您还必须使用工厂的回复

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