Python语言技术文档

微信小程序技术文档

php语言技术文档

jsp语言技术文档

asp语言技术文档

C#/.NET语言技术文档

html5/css技术文档

javascript

点击排行

您现在的位置:首页 > 技术文档 > js框架/js库

解决angularjs中同步执行http请求的方法

来源:中文源码网    浏览:202 次    日期:2024-04-22 21:02:18
【下载文档:  解决angularjs中同步执行http请求的方法.txt 】


解决angularjs中同步执行http请求的方法
如下所示:
self.tableParams = new NgTableParams({}, {
getData: function (params) {
$http.post("rest/staff/page", $scope.req).success(function (data) {
if (data != null && data != undefined) {
$scope.staffs = data.data;
params.total($scope.totalPage);
}
}).error(function (data) {
$("#serverErrorModal").modal({show: true});
});
return $scope.staffs;
}
});
上面这个示例中,getData方法要得到通过$http请求返回的值,然而在angularjs中$http永远都是异步的,也就是说return的值将一直为空;
网上的例子都是通过$q,promise来实现,我试了但是不行,应该是我自己的问题
然后突然想到$http本身就返回一个promise对象,何不直接使用?!代码如下
self.tableParams = new NgTableParams({'count': 10} , {
getData: function (params) {
var promise = $http.post("rest/staff/page", $scope.req);
return promise.then(function (resut) {
var response = resut.data;
var total = response.otherData[0];
params.total(total);
return response.data;
});
}
});
直接这样return就可以实现同步获取数据了~
以上这篇解决angularjs中同步执行http请求的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持中文源码网。

相关内容