AngularJS, manipuler des objets JSON

Résolu/Fermé
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

  1. 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 ;-)
    1. 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+
    2. 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 ....
    3. Pareil, maintenant, on arrive à faire des trucs, plus difficile^^