2015-11-09 3 views
-2

Я пытаюсь настроить два последовательных вызова ajax в угловых js. На первом этапе я адресность данные объекта в следующем формате:несколько вызовов ajax в angularjs

{ 
"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"

Вопрос: как мне настроить второй динамический вызов? Как настроить динамический URL-адрес в $http.get?

+0

вопрос тривиален –

+1

Отдельное спасибо Александру Elgin! ваше мнение было очень важным и очень помогло. – 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 .. И вы можете дифференцировать вызовы с помощью параметра, например, страницы. Увеличивайте страницу страницы каждый раз при срабатывании этого события.

для например на нажатие кнопки

HTML

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

JS

$scope.getJSON = function(){ 

$http.get(url,{}) 
    .success(function(data){ 
       $http.get(data.url,{}) 
       .success(function(data){ }); 
     }); 
} 
Смежные вопросы