2013-07-11 2 views
0

J'écris une application web en Angular, cette partie du code est destinée à obtenir des données XML de test sous forme de texte à partir du serveur. J'utilise le service http d'Angular pour envoyer une requête GET au serveur. La variable 'xmlData' est en cours de modification dans le bloc $ http, mais en dehors de ce bloc sa valeur est toujours la valeur par défaut. Voici le code:

this.getData = function() { 
     var xmlData = "Default"; 
     var xmlDoc; 
     // send an http GET request for the XML text data 

     $http.get('http://localhost:1337/testXML.txt').success(function(data) { 
      xmlData = data; 
      if (xmlData == null) { 
       alert("Data Error Occurred"); 
      } 
     // here, 'xmlData' contains the correct information. 
     }). 
     error(function() { 
      alert("HTTP Error Occurred"); 
     }); 

     // once the above $http block ends, the xmlData has the default value.   
     return xmlData; 
} 

Donc, est-ce juste un problème stupide? Ou est-ce que j'utilise incorrectement le service http de $ Angular? Merci!

Répondre

0

Je ne pense pas que vous pouvez insérer directement XML comme vous pouvez JSON sans une sorte d'analyseur.

Vérifiez cette question pour la gestion du XML dans AngularJS: How to handle XML services in AngularJS?

vérifier précisément ces modules/plugins pour aider:

+0

Très bien, merci! Je suis ce code avec un analyseur qui transforme les données xml dans un DOM avec lequel javascript peut travailler. Mais dites-vous que la requête http ne peut pas gérer xml? – Emma

+0

Vous pouvez saisir n'importe quoi avec $ http. Mais ce n'est que JSON qui peut nativement être attaché à une variable comme vous l'avez configuré. –

+0

Oh, d'accord. Ça a du sens. Super, merci beaucoup – Emma

Questions connexes