解决angularjs中同步执行http请求
2017-03-03 10:41
525 查看
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请求的方法
- 因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫 -- 解决方法
- 解决C#中一个"异步方法却同步执行"的问题
- dwr中同步执行的解决办法
- angularjs重新执行echarts时出现 there is a chart instance already initialized on the dom解决
- FireFox下Ajax同步请求onReadyStateChange不执行问题解决
- FireFox下Ajax同步请求onReadyStateChange不执行问题解决
- 因为应用程序正在发送一个输入同步呼叫,所以无法执行传出的呼叫 -- 解决方法【转】
- 解决安卓系统上,MUI AJAX同步执行无效的方法
- FireFox下Ajax同步请求onReadyStateChange不执行问题解决
- 使用复制存储过程执行解决“事务复制中的表大量更新导致无法及时同步”的问题 (转)
- [angularJS]我的第一个angularJS应用——解决不执行controller的代码
- angularjs使用gulp-uglify压缩后执行报错的解决方法
- 使用复制存储过程执行解决“事务复制中的表大量更新导致无法及时同步”的问题
- java执行http请求乱码解决
- Ext的ajax同步交互方式提交时相同url只执行一次的问题解决
- 使用复制存储过程执行解决“事务复制中的表大量更新导致无法及时同步”的问题
- AngularJS中的http请求默认为异步的,请问如何设置为同步请求呢?--使用$q
- java执行http请求乱码解决
- 使用企业库在某些站点会报试图执行安全策略不允许的操作异常的解决方法。