mus*_*fiq 37 get http angularjs
我需要做两个$ http.get调用,我需要将返回的响应数据发送到我的服务进行进一步的计算.
我想做类似下面的事情:
function productCalculationCtrl($scope, $http, MyService){
$scope.calculate = function(query){
$http.get('FIRSTRESTURL', {cache: false}).success(function(data){
$scope.product_list_1 = data;
});
$http.get('SECONDRESTURL', {'cache': false}).success(function(data){
$scope.product_list_2 = data;
});
$scope.results = MyService.doCalculation($scope.product_list_1, $scope.product_list_2);
}
}
Run Code Online (Sandbox Code Playgroud)
在我的标记中,我称之为
<button class="btn" ng-click="calculate(query)">Calculate</button>
Run Code Online (Sandbox Code Playgroud)
因为$ http.get是异步的,所以在传入doCalculation方法时我没有得到数据.
任何想法如何实现多个$ http.get请求并像上面的实现一样将响应数据传递给服务?
提前致谢.
Ye *_*Liu 74
你需要的是什么$q.all
.
添加$q
到控制器的依赖项,然后尝试:
$scope.product_list_1 = $http.get('FIRSTRESTURL', {cache: false});
$scope.product_list_2 = $http.get('SECONDRESTURL', {'cache': false});
$q.all([$scope.product_list_1, $scope.product_list_2]).then(function(values) {
$scope.results = MyService.doCalculation(values[0], values[1]);
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
30220 次 |
最近记录: |