私はAngularJSを初めて利用しています。
私は、次のネストされたの$ HTTP呼び出しを持って、
$http({
method: 'GET',
url: host1,
params: {
'format': 'json',
}
}).then(function successCallback(response) {
for (var i = 0; i < response.data.length; i++) {
$http({
method: 'GET',
url: response.data[i]['url'] + "packet-trace/base",
params: {
'format': 'json',
}
}).then(function successCallback(response2) {
//Retrieve some information from first $http call
var doSomething = response.data[i]['information'];
var doSomething2 = doSomething + response2.data['information'];
}, function errorCallback(response2) {
//Error
});
}
}, function errorCallback(response) {
//Error
});
私は最初の$ HTTP呼び出しからデータを取得して、$をhttpからデータを取得し、の一部として、これらのデータの両方を使用する必要があります私の論理。しかし、最初の$ http呼び出しからデータにアクセスすることはできません。ループカウンタ 'i'は常にresponse.dataの長さに等しい。
最初に$ httpコールのデータにアクセスするにはどうすればよいですか?
また、$ httpを連続して呼び出すために使用できる特定のコーディング規則や特定のAPIはありますか? $ httpコールのネストは面倒でメンテナンスは難しくなります。
ありがとうございました。
私はそれもやってみました。しかし、同じことが発生した、それは最後の値を取得することしかできませんでした。 – Ezra
値を取得した直後でループ内でAJAXリクエストを送信する前に、 'console.log(someValue);を置くと、各繰り返しで正しい値が見えますか? –
はい、私は個々の値を見ることができますが、それが二度目のAJAX呼び出しの中に入ると消滅し、最後の値を指しています。 – Ezra