AngularJS, manipuler des objets JSON

Résolu/Fermé
alexdu17200 Messages postés 1302 Date d'inscription   Statut Membre Dernière intervention   -  
alexdu17200 Messages postés 1302 Date d'inscription   Statut Membre Dernière intervention   -
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 1677 Date d'inscription   Statut Membre Dernière intervention   276
 
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 1302 Date d'inscription   Statut Membre Dernière intervention   836
 
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 1677 Date d'inscription   Statut Membre Dernière intervention   276
 
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 1302 Date d'inscription   Statut Membre Dernière intervention   836
 
Pareil, maintenant, on arrive à faire des trucs, plus difficile^^
0