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 :

Créer une variable « dynamique » ?


Sujet :

AngularJS

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut Créer une variable « dynamique » ?
    Bonjour,

    je ne sais pas si ce que je demande est réalisable, je n’ai vu qu’un tutoriel en parlant sur internet (mais pas en AngularJS), ni si le terme « dynamique » est approprié.

    Je possède un formulaire composés de balises « select ». Je peux récupérer la valeur sélectionnée grâce à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    console.log($scope.site);
    Mon problème est que je peux l’afficher avec un système de ng-change, mais pas à partir d’une variable javascript.

    J’aimerais combiner ces bouts de code*:
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $scope.texte = console.log($scope.site);
    //ou
    //var variable = console.log($scope.site); 
    //$scope.texte = variable;
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <div>
      {{ texte }}
     </div>

    pour voir affiché le résultat de ce que j’ai sélectionné, simplement pour vérifier la valeur de la variable (puis l’utiliser après).

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 28
    Points
    28
    Par défaut
    Bonjour,

    Tu peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div>{{site}}</div>
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <div ng-bind="site"></div>

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    Merci de ta réponse, mais je n’ai aucun résultat.

    ici mon formulaire :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <form>
       <select name="site" ng-model="selectedRequest.site" ng-options="site.name for site in option" required></select>
    </form>
     
    <!--<div>
      {{site}}
     </div>
     
    <div ng-bind="site">
     </div> -->
     
    <div ng-bind="site">
      {{site}}
     </div>

    J’ai aussi essayé avec site.name…

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 28
    Points
    28
    Par défaut
    Je pense qu'avec ces modifications ça devrait mieux marcher.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    
    <form>
       <select name="site" ng-model="selectedRequest.site" ng-options="site.name for site in option" required></select>
    </form>
    
    <div ng-bind="selectedRequest.site">
     </div>

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    En effet, cela fonctionne.

    Mais ce n’est pas totalement ce dont j’ai besoin. J’aimerais pouvoir attribuer cette valeur à une variable contenue dans mon contrôleur.

    Comme ça :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var variable = selectedRequest.site;
          $scope.texte = variable;

    Mais ce code ne fonctionne pas du tout (il fait même mettre tout le code en échec).

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 28
    Points
    28
    Par défaut
    Tu peux récupèrer la valeur depuis le scope.

    var site= $scope.selectedRequest.site;

  7. #7
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    En utilisant cette méthode,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $scope.texte = $scope.selectedRequest.site;
    {{texte}} n’affiche rien.

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 28
    Points
    28
    Par défaut
    As-tu bien mis le $scope.texte =$scope.selectedRequest.site dans une fonction?
    Cette fonction est appelée lors d'un changement sur le select (utilisation de l'attribut ng-change)?

  9. #9
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    Oui, ça je l’ai déjà fait, je ne l’ai pas mis (j’aurais dû), mais j’ai ce code-ci (en plus du reste):
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     <div ng-change="update()">{{ selectedRequest.site.name }}</div>
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $scope.selectedRequest = {};
          $scope.selectedRequest.option = $scope.option[0];
     
     
          $scope.update = function () {
            console.log($scope.site)
          }
    Et ce code ne m’affiche pas la variable $scope.texte, qui elle, n’est pas dans une fonction.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var variable = $scope.selectedRequest.site;
           $scope.texte = $scope.selectedRequest.site;

  10. #10
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2010
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2010
    Messages : 20
    Points : 28
    Points
    28
    Par défaut
    L'attribut ng-change devrait être sur ton select. Il faut mettre aussi le code $scope.texte = $scope.selectedRequest.site dans la fonction update.

    Comme ça à chaque changement sur ton select, la valeur de ta variable $scope.texte change.

  11. #11
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2014
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2014
    Messages : 162
    Points : 73
    Points
    73
    Par défaut
    Ah, merci :) En effet, c’était bien le schéma de ng-change qui était en cause.

    Je pense que mon problème est résolu maintenant :)

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

Discussions similaires

  1. Comment créer une variable dynamique en js?
    Par L0101SA dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/01/2011, 19h49
  2. créer une variable au nom dynamique?
    Par gwena54 dans le forum ASP
    Réponses: 1
    Dernier message: 22/07/2008, 11h51
  3. Réponses: 8
    Dernier message: 01/06/2007, 16h39
  4. Créer une variable de manière dynamique
    Par Nelson74 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/11/2006, 23h05
  5. [JDOM] Créer une variable xml directement dans java
    Par Tigrounette dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 18/12/2005, 14h21

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