2 votes

Comment concaténer 2 résultats lambda dans un tableau ?

Je fais deux requêtes HTTP pour avoir deux ensembles de données différents. Les deux ensembles contiennent des informations sur l'utilisateur.

J'utilise lambda pour extraire l'information :

Ensemble 1 :

$scope.snapi.datas.employees.listc =
    $scope.snapi.datas.changes.changes.map( function(val) {
        return val.assignedTo.display_value;
    })
    .filter((value, index, self) => self.indexOf(value) === index);

Ensemble 2 :

$scope.snapi.datas.employees.listi =
    $scope.snapi.datas.incidents.incidents.map( function(val) {
        return val.assignedTo.display_value;
    })
    .filter((value, index, self) => self.indexOf(value) === index);

Je voudrais agréger le résultat pour l'afficher (en utilisant angular-js).

Code angulaire :

<tr ng-repeat="emp in snapi.datas.employees.list">
    <td> {{emp}}
</tr>

Je peux afficher l'un ou l'autre mais pas les deux.

Code :

if ( $scope.snapi.filter.tableIncident && $scope.snapi.filter.tableChange ){
    $scope.snapi.datas.employees.list =
        $scope.snapi.datas.employees.listc
            .push($scope.snapi.datas.employees.listi);
}

Mais voici le résultat que j'ai obtenu :

THe data from listc is ok, but nmot the data from listi

Avez-vous une raison ?

Merci, Nicolas

0voto

caedmon Points 106

Utilisez concat() plutôt que push() pour combiner les listes :

$scope.snapi.datas.employees.list = 
  $scope.snapi.datas.employees.listc
    .concat($scope.snapi.datas.employees.listi);

0voto

n savoini Points 85

Mon problème était avec AngularJS, qui ne voulait pas afficher la liste après la concat.

Après ce changement, cela a fonctionné : ajouter piste par $index

<tr ng-repeat="emp in snapi.datas.employees.list track by $index">
    <td> {{emp}}
</tr>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X