Bonjour,

Nouveau sur le framework AngularJS je suis confronte au probleme suivant : J'ai plusieurs pero qui possedent plusieurs des armes (il peut y en avoir une infinie !)

J'aimerais affichier les armes de chaque perso

Exemple

Perso1:<br/>
----Arme1<br/>
----Arme2<br/>
Perso2:<br/>
----Arme1<br/>
Perso3:<br/>
----Arme1<br/>
----Arme2<br/>
----Arme3<br/>

Pouvant avoir une infinite de perso et d'armes, pour évite le lag, j'aimerais charger les armes d'un perso juste quand l'utilisateur click sur un perso.

J'ai alors fait ceci :

Index.html :

<div ng-repeat="result in results">
  <div ng-click="getArme(result)">Perso : {{result}}</div>

  <div ng-repeat="result2 in results2">
    <div>Arme = {{result2}}
    </div>
   </div>
</div>

app.js :

var app = angular.module('myApp', []);

app.controller('MainController', ['$scope', '$http',
    function($scope, $http) {
     $scope.getArme = function (perso) {
/***  Fonction qui fait une requette ajax grace a http() et qui mes tous les armes dans $scope.resultat2
   getNamePerso('affArme.php', perso);
/***************************************/                
  };
   $scope.getPerso = function () {
/***  Fonction qui fait une requette ajax grace a http() et qui mes tous les non des perso dans $scope.resultat
   getNamePerso('affPerso.php');
/***************************************/                
  };
  }
]);

Le probleme est que lorsqu'on click sur un perso cela va mettre les armes ce perso dans chaque perso !
Je pense que cela est du au fait que pour afficher les armes j'utilise la meme resultats2[] pour tous les persos.

J'ai peut etre une piste de reflexion : j'ai lu quelque part qu'il y avait possibilite de creer plusieur scope. On pourrait donc creer un scope pour chaque perso donc un tableau resultat2[] pour chaque perso. Le probleme c'est que je ne vois pas comment faire et je ne sais pas si c'est un solution optimiser :s

Merci

3 réponses


je vois que tu passes le parametre 'perso' dans la methode getArme. c'est dans cet élément que tu dois ajouter les nouvelles armes. pas dans $scope.resultat2.

nicolas
Auteur

C'est a dire ? As tu un exemple ?
En effet perso et une chaine de caractère, et donc comme je peux y ajouter un tableau ?

$scope.getArme = function (perso) {
    // comme je ne sais pas ce que fait  getNamePerso('affArme.php', perso);
    // je propose un autre exemple, a toi d'adapter

    // fonction qui envoie une requete au serveur
    // et qui renvoie une arme
    perso.arme = getArme();
  };