2015-11-09 59 views
-2

我正在嘗試在角度js中設置兩個串行ajax調用。在第一步中,我在這個格式歌廳對象數據:angularjs中的多個ajax調用

{ 
"kname": "Hilton Hotel", 
"kaddress": "Sch\u00f6neberger Str. 2-4", 
"kcity": "Berlin", 
"kfon": "069 7147 2214",  
"url":"assets/testKontietung.json" 
} 

在第二步中,我從對象採取的URL並多了一個AJAX調用它。在這個例子中:"url":"assets/testKontietung.json"

問題:我如何設置第二個動態調用?我如何在$http.get中設置動態網址?

+0

的點擊的問題是微不足道的 –

+1

特別感謝亞歷山大·埃爾金!你的意見非常重要,並且幫助很大。 – Petro

回答

5

裹在下列方式在第一次調用的承諾第二Ajax調用:

$http.get('first_url').then(function(data) { 
    var second_url = data.url; 
    $http.get(second_url).then(function(data) { 
     console.log(data); //final data 
    }) 
}) 
+0

@Pedro,你覺得答案有幫助嗎? –

+0

謝謝大家! – Petro

+0

你也可以鏈接你的承諾。如果你首先'返回second_url',你可以在第一個'then()'之後添加第二個'then()'。通過這種方式,您可以爲代碼獲得更扁平,更可讀的結構。我也意味着你不必處理被拒絕的承諾,直到你達到承諾鏈的最後。 –

0

試試這個:

$http.post('your/url',data) 
     .success(function(data){ 
     var nexturl = data.url; 
     if(nexturl){ 
     $http.get('' + nexturl) 
     .success(function(data){ 
     console.log(data); 
    }) 
    } 
    }) 
2

你可以使用一些事件再拍AJAX調用.. 而且你可以通過參數來區分呼叫,比如頁面。每當觸發事件時增加頁面頁面。

爲e.g按鈕

HTML

<button ng-click="getJSON()" /> 

JS

$scope.getJSON = function(){ 

$http.get(url,{}) 
    .success(function(data){ 
       $http.get(data.url,{}) 
       .success(function(data){ }); 
     }); 
}