AngularJS, manipuler des objets JSON

Résolu/Fermé
alexdu17200 Messages postés 1282 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 7 mars 2016 - 10 janv. 2014 à 22:25
alexdu17200 Messages postés 1282 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 7 mars 2016 - 11 janv. 2014 à 13:32
Bonsoir à tous, j'ai un fichier JSON (que je traite en JavaScript avec AngularJS) de cette architecture, en gros:

{
    "List": [
        {
            "id": 1,
            "produit": {
                "id": 1,
                "name": "test"
            },
            "Type": [
                {
                    "id": 1,
                    "name": "Type 1",
                    "meteojobId": "T1"
                }
            ]
}


Je souhaite accéder à un des objets contenu dans List.Type dans du html, j'arrive avec {{ List.Type }} à afficher l'ensemble des objets, mais je ne voudrais que l'objet "name", quelqu'un pourrait-il m'aider à trouver la bonne syntaxe? (ou alors des bons mots-clés pour une recherche sur Google?)

Merci de votre aide

1 réponse

ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 11/01/2014 à 13:34
Hello,

C'est le "name" dans "produit" que tu veux ou celui dans "Type" ?

Comme précisé précédemment, je connais pas angular mais j'ai essayé un truc comme ça (ça doit être super moche pour quelqu'un qui connaitrait angular :( ):

test.html :

<!doctype html>
<html ng-app>
  <head>
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular.min.js"></script>
    <!-- Latest compiled and minified CSS -->
    <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
    <script src="todo.js"></script>
  </head>
  <body>
    <div class="container">
        <div class="row">
            <div col-xs-2 col-xs-offset-1 ng-controller="testJson">
                <h4><small>Le nom du produit est : </small> "{{data.List[0].produit.name}}"</h4>
            </div>
        </div>
    </div>
   </body>
</html>


test.js :

function testJson($scope) {
    $scope.data = {
    "List": [
        {
            "id": 1,
            "produit": {
                "id": 1,
                "name": "test"
            },
            "Type": [
                {
                    "id": 1,
                    "name": "Type 1",
                    "meteojobId": "T1"
                }
            ]
        }]
    };
};


et ça me sort le "name" de "produit" ...
Ça me parait on ne peut plus simple. :p
Si ça peut t'aider ...

Y'a plus qu'à adapter à ton code. :-)

Edit : retiré la boucle (ng-repeat qui servait à rien) / précisé le nom des fichiers html et js, changé le nom de qqs variables et rajouté un peu de css :p (bootstrap) ...

You may stop me but you can't stop us all ;-)
3
alexdu17200 Messages postés 1282 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 7 mars 2016 834
11 janv. 2014 à 13:08
Merci, j'essayais de récupérer le "name" de "Type", j'ai été idiot sur ce coup là, (encore une fois). J'ai pas pensé à traiter Type comme un tableau.... ta réponse m'a remis sur le bon chemin^^.
A la fin, j'arrive a:
{{ List.Type[0].name }}

Merci de ton aide (encore une fois) et je suis désolé du dérangement...

A+
0
ryko1820 Messages postés 1645 Date d'inscription dimanche 28 avril 2013 Statut Membre Dernière intervention 15 août 2021 276
Modifié par ryko1820 le 11/01/2014 à 13:17
oki, de rien ... ça m'aura permis de m'amuser un peu avec du json et angular.
Au début j'ai tâtonné en faisant du .length de mes datas pour voir si au moins j'avais des trucs ....
0
alexdu17200 Messages postés 1282 Date d'inscription mardi 4 juin 2013 Statut Membre Dernière intervention 7 mars 2016 834
11 janv. 2014 à 13:32
Pareil, maintenant, on arrive à faire des trucs, plus difficile^^
0