将异步 AJAX 调用与 Angularjs 链接起来
Chaining asynchronous AJAX calls with Angularjs
我正在使用Angularjs,并且我已经使这项服务具有返回promise的多个函数。
我的 AJAX 服务:
angular.module('yoApp')
.factory('serviceAjax', function serviceAjax($http) {
return{
configDataSets:function(path){
return $http.get(path);
},
fileList: function(site_url,dataSet,varName,region,date){
return $http.get(site_url + "mwf/" + dataSet + "/" +varName + "/" + region + "/" + date + "/filelist/");
},
config: function(site_url,dataSet){
return $http.get(site_url + "mwf/" + dataSet + "/config/");
},
}});
控制器代码
我已经做了这样的事情,但由于我可能有更多的请求链接,我认为这不是最好的方法:
serviceAjax.config(site_url,$scope.dataset).then function(data){
$scope.config=data.data;
serviceAjax.configDataSets("images/configDatasets.json").then(function(data){
$scope.configDatasets = data.data;
});
});
我想做的是首先调用我的控制器配置,然后等待它完成,然后调用 配置数据集 . 最好的方法是什么,我试图查看$q并有所不同,但我似乎无法弄清楚该怎么做。任何帮助都会很棒!
只需使用 promise 公开的 .then
方法:
serviceAjax.config(function(response) {
// use response.data from first call
...
}).then(function() {
return serviceAjax.configDataSets("images/configDatasets.json");
}).then(function(response) {
// use response.data from second call
...
});
此外,如果您的 HTTP 服务遵循典型的 RESTful 用法,请考虑使用 $resource
而不是 $http
。
相关文章:
- AngularJS:获取链接中没有哈希的查询字符串值
- 如何使用angularjs在iframe中嵌入来自数据库的视频链接
- AngularJs正在阻止链接被点击两次
- 为Angularjs制作超链接
- 从控制器Angularjs调用链接函数
- Angularjs如何在点击任何链接时掩盖整个身体
- $q.reject和处理AngularJS链接承诺中的错误
- (angularJS)使ng-click在ng-repeat上打开一个链接
- 如何摆脱AngularJS中的当前域URL链接
- 如何使用AngularJS链接下拉列表
- AngularJS链接$http获取请求
- 将异步 AJAX 调用与 Angularjs 链接起来
- angularjs链接功能的用途
- 使用AngularJS链接来自2个数据源的2个SELECTS
- angularjs链接发生在替换之前
- 如何使用python selenium点击angularjs链接
- AngularJS-链接函数中的作用域被重置,我做错了什么
- AngularJS -“链接承诺”中间还有其他函数
- AngularJS-链接和方法在嵌套ng重复中不起作用
- AngularJS:链接的问题,如何使用标记