在AngularJS中,可以使用Promises和$ q服务来处理同一页面上使用不同控制器的多个HTTP请求。下面是一个解决方法的示例代码:
首先,在你的控制器中注入$http和$ q服务:
app.controller('myController', function($scope, $http, $q) {
// 控制器的代码
});
然后,你可以使用$q.all()方法来等待多个HTTP请求完成,并在它们都成功完成后执行一些操作。在每个HTTP请求中,你可以使用$http服务返回一个Promise对象。下面是一个示例代码:
app.controller('myController', function($scope, $http, $q) {
// 发起多个HTTP请求
var request1 = $http.get('/api/data1');
var request2 = $http.get('/api/data2');
var request3 = $http.get('/api/data3');
// 使用$q.all()等待所有HTTP请求完成
$q.all([request1, request2, request3])
.then(function(responses) {
// 所有请求都成功完成后执行这里的代码
var data1 = responses[0].data;
var data2 = responses[1].data;
var data3 = responses[2].data;
// 执行其他操作或更新$scope中的数据
})
.catch(function(error) {
// 如果任何一个请求失败,则会进入这里的错误处理代码
console.error('Error:', error);
});
});
在上面的示例代码中,我们使用了三个不同的HTTP请求,并使用$q.all()等待它们全部完成。一旦所有请求都成功完成,我们可以通过访问每个请求的响应来获取数据,并在.then()方法中执行其他操作或更新$scope中的数据。
请注意,如果任何一个请求失败,将会进入.catch()方法中的错误处理代码。
希望这个示例能帮助你解决问题!