IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AngularJS Discussion :

Comment utiliser le contenu d'une variable comme une variable


Sujet :

AngularJS

  1. #1
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut Comment utiliser le contenu d'une variable comme une variable
    Bonjour, mon titre n'est peut etre pas très explicite, mais je vais essayer de mieux expliquer.

    J'ai un objet, qui a une propriété qui en fait est le nom d'une variable qui devra etre utiliser. et je n'arrive pas a le faire.

    Voici un bout de mon code :

    pour le JS, la variable en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    scope.sightAccountsOptions = [
    	{"type":"saving","root":"savings"},
    	{"type":"check","root":"check"},
    	{"type":"current","root":"current"}
    ];

    Pour le HTML, j'aimerais faire ceci :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        <div ng-repeat="sightAccountOpt in sightAccountsOptions">
              <div data-ng-show="clientAccounts.{{sightAccountOpt.root}}Accounts">
               .....
                   <!-- si je met ceci, j'ai une erreur--> 
                   <tr ng-repeat="savingaccount in clientAccounts.{{sightAccountOpt.root}}Accounts >
     
                   <!-- voila ce que je veux avoir, par exemple, comme résultat final--> 
                   <tr ng-repeat="savingaccount in clientAccounts.savingsAccounts > 
                    .....
                   </tr>
              <div>
         <div>

    l'erreur que j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Error: [$parse:syntax] Syntax Error: Token '{' is an unexpected token at column 16 of the expression [clientAccounts.{{sightAccountOpt}}Accounts].
    Comment faire pour avoir le résultat attendu ??

    Merci
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  2. #2
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Salut!

    tu devrais préparer ton tableau dans un service et le charger à partir de ta variable de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    var myObject = {
      myFirstFieldSuffix: ["1", "2"],
      mySecondFieldSuffix: ["3", "4"],
      myThirdFieldSuffix: ["5", "6"]
    };
     
     
    var prefix = "myFirstField";
     
     
    console.log(myObject[prefix + "Suffix"]);
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

  3. #3
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Voila ce que j'ai essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    scope.sightAccountsOptions ={
         saving:["savingsAccounts","clientAccounts.avingsAccounts"],
         check:["checkAccounts","clientAccounts.checkAccounts"],
         current:["currentAccounts","clientAccounts.currentAccounts"]
    };
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <div ng-repeat="sightAccountOpt in sightAccountsOptions">
          <div data-ng-show="sightAccountOpt[0]">
           .....
              <tr ng-repeat="savingaccount in sightAccountOpt[1]>
           .....
              </tr> 
          </div>
    </div>

    et l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "Error: [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use 'track by' expression to specify unique keys. Repeater: savingaccount in sightAccountOpt[1]].
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  4. #4
    Membre expérimenté Avatar de slim
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2002
    Messages
    938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2002
    Messages : 938
    Points : 1 337
    Points
    1 337
    Par défaut
    Salut!
    Citation Envoyé par docAngularJS
    The ngRepeat directive instantiates a template once per item from a collection.
    La doc : ngRepeat


    Après, comme c'est indiqué dans la doc, tu peux itérer sur les élements de ton objet comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div ng-repeat="(key, value) in myObj"> ... </div>
    Et la doc concernant l'erreur de duplication : Duplicate Key in Repeater
    Faites une recherche sur le forum et/ou sur internet et lisez la doc officielle avant de poser une question svp.
    et n'oubliez pas de lire les FAQ !
    FAQ Java et les cours et tutoriels Java
    Doc JAVA officielle
    AngularJS 1.x
    Angular 2

    Do it simple... and RTFM !

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  2. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  3. Réponses: 6
    Dernier message: 08/12/2007, 14h33
  4. Réponses: 2
    Dernier message: 23/11/2007, 11h33
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo