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 :

Scope problème ?


Sujet :

AngularJS

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 40
    Points : 29
    Points
    29
    Par défaut Scope problème ?
    Bonjour,

    j'ai un petit soucis au niveau de la gestion des scopes, ou un soucis de compréhension ?

    voici mon soucis:Nom : Sans titre-1.png
Affichages : 217
Taille : 376,8 Ko

    En gros, dans mon html (qui a pour controller EventCtrl) j'arrive a afficher Uti.name grace au $scope.Uti = Auth.user.profile.

    Mais dans mon controller je n'arrive pas a accéder directement au nom en faisant Auth.user.profile.name.

    Pourquoi ?

  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,

    Pourrais-tu mettre ton code entre les balises <code> et non poster des images (parce que ça pique un peu), stp ?

    mets un console.log() sur tes deux variables et rejoues le cas d'utilisation et dis nous quelles sont les valeurs affichées (sur la console) ?

    Comment as-tu déclaré ton contrôleur ? ton application angular ?
    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
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Le controlleur, la partie qui m’intéresse
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    'use strict';
     
     
    var app = angular.module('APPLI');
     
      app.controller('EventCtrl', function ($scope, Eve, Auth, $location) {
     
      console.log(Auth.user.password.email +' EMAIL LOG');                            /*RENVOI BIEN LE MAIL DE LUTILISATEUR CO*/
      console.log(Auth.user +' USER LOG');                                               
      console.log(Auth.user.profile +' PROFILE LOG');                                  /*RENVOI LOBJECT FIREBASE ENTIER */
      console.log(Auth.user.profile.name +' PROFILE NAME LOG');            /*RENVOI UNDEFINED */
      console.log(Auth.user.profile.$id +' PROFILE ID LOG');                      /*RENVOI LA BONNE VALEUR */
     
     
    });
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     
    app.factory('Auth', function(FIREBASE_URL, $firebaseAuth, $firebaseArray,$firebaseObject,$firebase, toaster,$location) {
     
    	var ref = new Firebase(FIREBASE_URL);
    	var auth = $firebaseAuth(ref);
     
     
    	var Auth = {
    		user: {},
                     /*Plusieurs fonctions...inutile pour lexemple*/
                          };
     
     
     
    auth.$onAuth(function(authData) {
     
    		if(authData) {      
          angular.copy(authData, Auth.user);
          Auth.user.profile = $firebaseObject(ref.child('profileExt').child(authData.uid));
          console.log(Auth.user.profile);
    		} else {
     
          if(Auth.user && Auth.user.profile) {
            Auth.user.profile.$destroy();
          }
     
          angular.copy({}, Auth.user);
    		}
    	});
    FirebaseObject {$$conf: Object, $id: "simplelogin:74", $priority: null, $save: function, $remove: function…}$$conf: Object$id: "simplelogin:74"$priority: nullemail: "hi@hi.fr"lastname: "hi"nom: "hi"pseudo: "hi"role: "1"__proto__: Object
    Donc en gros j'arrive à accéder $id de Auth.user.profile.$id, mais pas a name de Auth.user.profile.name...
    J'arrive a accéder a name uniquement dans le DOM en faisant un $scope.User = Auth.user.profile (dans le controlleur) et un {{User.name}} dans le html.

    Voilà j’espère que cest plus clair.. merci de l'aide

  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
    Je pense que le 'user' est modifié après la 2eme ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    angular.copy(authData, Auth.user);
    Auth.user.profile = $firebaseObject(ref.child('profileExt').child(authData.uid));
    mets des points d'arret ou console.log après chaque ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    console.log(JSON.stringify(Auth.user));
    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 !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Alors,

    j'arrive désormais a afficher la propriété de Auth.user.profile.name l'orsque j'arrive sur ma page.

    En revanche si je rafraîchi la page du navigateur, la variable passe en "undefined".

    En allant sur une autre page et en revenant, la variable reprend la bonne valeur.

    Est ce normal ?


    merci de l'aide

  6. #6
    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
    Citation Envoyé par rioll Voir le message
    Est ce normal ?
    J'imagine que non... Mais c'est le même problème et peut être la même solution.
    Il faudrait "dérouler" ton use case et voir à quel moment tes variables sont settées, et à quel moment elle sont modifiées.
    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 !

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2012
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2012
    Messages : 40
    Points : 29
    Points
    29
    Par défaut
    Merci en tout cas =)

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

Discussions similaires

  1. Probléme avec le scope request
    Par Esil2008 dans le forum JSF
    Réponses: 8
    Dernier message: 19/02/2010, 18h09
  2. Réponses: 5
    Dernier message: 16/07/2007, 10h00
  3. Réponses: 2
    Dernier message: 30/05/2007, 20h25
  4. problème de scope actionForm
    Par satanas313 dans le forum Struts 1
    Réponses: 10
    Dernier message: 09/05/2007, 16h32
  5. [STRUTS] problème de scope
    Par DarkWark dans le forum Struts 1
    Réponses: 32
    Dernier message: 25/02/2006, 01h47

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