$http({method: 'GET', url: '/xxx/xxx/xas'}).success(function(data) {
$scope.website = data.websites;
});
$http({method: 'GET',url: '/xx/xasxxx?websiteId='+$scope.website.websiteId}).success(function(data) {
$scope.onlinedata1 = data.coupons;
});
我尝试从顶级网址获取网站ID并将该ID传递到第二个网址.my json数据结构
"websites":[{
"websiteName":"Flipkart",
"websiteId":"1",
},
{
"websiteName":"asas",
"websiteId":"5",
}]
尝试逐个传递每个ID。我正在使用AngularJS v1.2.17。
答案 0 :(得分:1)
在第一个成功回调中移动第二个HTTP调用:
$http({method: 'GET', url: '/xxx/xxx/xas'}).success(function(data) {
$scope.website = data.websites;
for (var i = 0; i < data.websites.length; i++)
{
$http({method: 'GET',url: '/xx/xasxxx?websiteId='+data.websites[i].websiteId}).success(function(data) {
$scope.onlinedata1 = data.coupons;
});
}
});
考虑到您的请求是GET,可以简化这一点:
$http.get('/xxx/xxx/xas')
.then(function(res) {
for (var i = 0; i < res.data.websites.length; i++)
{
$http.get('/xx/xasxxx?websiteId='+res.data.websites[i].websiteId)
.then(function(res) {
$scope.onlinedata1 = res.data.coupons;
});
}
});
请注意,上述内容将针对API返回的每个网站发出一个请求。如果您可以控制API,则可能需要考虑在第二个URL资源(/xx/xasxxx?websiteIds=1,5,7,12,56
)上接受多个网站ID,以限制客户端发出的请求数。
答案 1 :(得分:0)
在模块ng中使用$ q - service 一种服务,可以帮助您异步运行函数,并在完成处理时使用它们的返回值(或异常)。