我猜$http.get
部分不起作用。
这是我的代码:
.controller('home', function($scope, request){
$scope.list = request.get(baseUrl);
})
.factory('request', function($http){
var get = function(url){
$http.get(url).success(function(data){
console.log(data);
return data; //returns nothing
});
}
return {
get : get
}
});
答案 0 :(得分:3)
试试这个。
.factory('request', function($http){
var get = function(url){
return $http.get(url).success(function(data){
return data;
});
}
return {
get : get
}
});
更新您的控制器。
request.get(url).then(function (data) {
$scope.data = data;
}, function (response) {
// handle error
});
答案 1 :(得分:1)
一般来说,你的函数根本不会返回任何内容 - 如果我要调用request.get(),它将返回undefined。你想要像
这样的东西.controller('home', function($scope, request){
request.get(baseUrl).then(function(data){ // I prefer then and catch semantics
$scope.list = data; // as they're standard promises form
})['catch'](function (err){console.log(err)});
})
.factory('request', function($http){
var get = function(url){
return $http.get(url).then(function(data){
console.log(data);
return data;
});
}
return {
get : get
}
});
虽然这对于一个简单的案例来说是不必要的混淆(我只是将$http.get().then().catch()
内容放在控制器中而不是工厂中。