我有一个控制器“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未定义
答案 0 :(得分:1)
您没有在控制器中注入工厂。
试试这个
app.controller("ListController", function(MyFactory){
}
更多关于您的方法的回调直接分配不会为您带来任何数据
试试这个
MyFactory.load().then(function(data){
bar.venues = data;
});
您还必须使用工厂的回复
返回$ httpmyService.load = function(){
return $http.get("scripts/Query.php").success( function(rows){
return rows;
};
};