如何在一个angularjs工厂里面返回从$ http.get()数据 [英] How do I return data from a $http.get() inside a factory in angularjs
本文介绍了如何在一个angularjs工厂里面返回从$ http.get()数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有很多的麻烦这点,我似乎无法在这里找到任何东西SO或谷歌,可以帮助我发现我在做什么错
I'm having a lot of trouble with this and I can't seem to find anything here on SO or Google that helps me spot what I'm doing wrong
<!DOCTYPE html>
<html data-ng-app="testApp">
<head>
<title></title>
</head>
<body>
<div data-ng-controller="myController">
{{test}}<br/>
{{test2}}<br/>
{{test3}}
<ul>
<li data-ng-repeat="member in members">{{ member.firstname}}</li>
</ul>
</div>
<script type="text/javascript" src="angular.min.js"></script>
<script type="text/javascript">
angular.module('testApp', ['memberFactory']);
angular.module('testApp',[])
.factory('memberFactory', function($http){
var obj = {};
obj.data = "abcd";
obj.getResponse = function(){
var temp = {};
$http.get('hello.php').success(function(data){
alert(data);
temp =data;
});
return "some return value";
}
return obj
});
function myController($scope, memberFactory){
$scope.test= "testString";
$scope.test2= memberFactory.data;
$scope.test3= memberFactory.getResponse();
}
</script>
</body>
</html>
在回归一些返回值;
的作品,但是当我尝试返回临时,它的空。我曾尝试各种方式来得到这个工作,但我似乎无法设置 $ http.get()
函数内的临时值
the return "some return value";
works but when I try to return temp, its null. I have tried various ways to get this to work but I just can't seem to set the temp value inside the $http.get()
function
这可能是一些简单的(或我的一个愚蠢的错误/误导的做法)。任何意见将大大AP preciated
It is probably something simple (or a silly mistake/misguided approach on my part). Any advice would be greatly appreciated
推荐答案
使用延迟:
obj.getResponse = function(){
var temp = {};
var defer = $q.defer();
$http.get('hello.php').success(function(data){
alert(data);
temp =data;
defer.resolve(data);
});
return defer.promise;
}
这篇关于如何在一个angularjs工厂里面返回从$ http.get()数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文