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 :

Expression pour accéder aux attributs à partir d'une string


Sujet :

AngularJS

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Points : 22
    Points
    22
    Par défaut Expression pour accéder aux attributs à partir d'une string
    Bonjour a tous,

    Je ne sais pas trop comment definir l'intitulé de ma question mais je vais essayer de de la poser de façon compréhensive

    J'aimerais savoir s'il est possible de declarer une expression de façon composé et dynamique.

    Je m'explique :

    Imaginons que j'ai un controller defini tel que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    angular.module('app')
    	.controller('appCtrl', function ($scope) {
    		$scope.news = {
    			'title' : {
    				'fr' : 'Titre 1',
    				'en' : 'Title 1'
    			}
    		};
    		$scope.langage = 'fr';
    });
    Je voudrais pouvoir accéder a l'attribut "title.fr" ou "title.en" de mon objet JSON en fonction de ma variable langage ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <p>{{news.title.{{langage}}}}</p>
    Bon ça ça ne fonctionne pas mais c'est pour imager le problème

    Je pensais m'orienter vers un filter mais quelqu'un aurait une autre solution ?

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Avril 2010
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 20
    Points : 22
    Points
    22
    Par défaut
    Autant pour moi utiliser un filter qui accède a l'attribut javascript est tres efficace

  3. #3
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Tu fais un service qui a une fonction qui prend en entrée news et language.

    Tu mets ta logique dans cette fonction qui retournera la valeur à afficher.

    Ensuite tu injectes ton service dans ton contrôleur, tu bindes l'instance du service dans une variable du scope.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $scope.serviceTraductionInstance = ServiceInjecteDansLeController;
    Et enfin dans la vue tu appelles ta méthode

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <p>{{serviceTraductionInstance.fonctionDeTraduction(news, languge)}}</p>
    EDIT : Un filtre est tout aussi approprié et fonctionne sur le même principe.
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 22/08/2010, 13h35
  2. Réponses: 2
    Dernier message: 26/11/2009, 14h00
  3. [USB] [JNI] Utiliser JNI pour accéder aux ports USB
    Par Javatator dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 27/10/2005, 06h40
  4. Réponses: 17
    Dernier message: 16/10/2005, 21h01
  5. Réponses: 2
    Dernier message: 12/07/2005, 11h20

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