Je suis coincé sur quelque chose, je pense, devrait être simple. J'ai besoin de prendre des données à partir de trois différents appels ajax, de combiner et de traiter tous les trois, et afficher le tableau qui en résulte pour l'utilisateur.
Dans sa forme la plus simple de mon code ressemble à ceci:
function giftControler ($scope, $http) {
var names = $http.get("names.json"),
naughty = $http.get("naughty.json"),
nice = $http.get("nice.json");
Je comprends que mes variables sont affectées à des promesses, pas de résultats, et que la requête http a été transmise à la file d'attente des événements. Si je suis avec ces instructions exécutables de ces variables sera pas défini. Je ne comprends pas comment attendre de ces promesses à résoudre afin de poursuivre leur traitement.
Ce que je voudrais faire est d'ajouter immédiatement le code:
for (var i=0; i<names.length; i++){
for (var j=0; j<nice.length; j++){
if (names[i] === nice[j]){
names[i] = names[i] + "--Yay!!";
};
};
};
$scope.kids = names;
Le problème est que je ne peux pas travailler hors de promesses, comme s'ils étaient résolus de tableaux. Javascript, voir ces déclarations à droite après le http appels et de les exécuter immédiatement, même si les promesses n'ont pas été résolus.
Où je suis coincé, c'est que le $http-api est de me donner une promesse objet avec trois fonctions: l'erreur, le succès, alors. Je ne suis pas sûr de quoi faire avec dans ce cas. J'ai besoin d'un seul succès fonctionner pour tous les trois. J'ai besoin de tous les trois à résoudre, puis traiter les données dans chaque, puis d'affecter le résultat à une angulaires du modèle.
Je suis sûr que je suis absent quelque chose d'évident, mais quelqu'un aurait-il une suggestion? Dans mon travail, j'ai plusieurs appels ajax de multiples sources de données et beaucoup de traitement (comparaison de valeurs, le tri, la concaténation, etc) pour arriver à une bonne collecte de données, mais je ne peux pas obtenir passé ce problème.
Merci,