2017-09-22 3 views
0

Je suis nouveau sur Ember JS et tout framework UI. Face à la question ci-dessous si gentiment suggérer. J'ai un utilisateur object (json) ayant group ids (tableau). En utilisant group Ids j'ai besoin de tirer le nom du groupe et les détails. En utilisant le code ci-dessous pour obtenir les détails.Je n'ai pas de valeur grâce au rappel dans Ember js

L'appel asynchrone passe et récupère les données mais je ne reçois pas de variable nameGroup.

var nameGroupName = _.filter(user.userGroups, function(group){ 
    return groupService.GroupDetails(group).then(function(result) { 
     return result.name; 
    }); 
}); 

Veuillez suggérer.

Répondre

0

Puisque vous utilisez asyncpromises vous devez attendre jusqu'à ce que vous appeliez l'itération suivante. La meilleure chose est d'utiliser une fonction recursive pour parcourir le tableau plutôt que d'utiliser la méthode lodash ou underscorefilter.

Ci-dessous est un exemple de mise en œuvre.

function getNameGroupName = function(userGroups, index){ 
    groupService.GroupDetails(userGroups[index]).then(function(result) {   
     userGroups[index] = result.name; 
     index = index + 1; 
     if(index < userGroups.length){ 
      getNameGroupName(userGroups, index) 
     } 
    }); 
} 

var nameGroupName = getNameGroupName(user.userGroups, 0);