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

Angular Discussion :

[Angular 5] Appeler un attribut depuis un service avec subscribe


Sujet :

Angular

  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut [Angular 5] Appeler un attribut depuis un service avec subscribe
    Bonsoir,

    j'ai un service qui me donner un jeton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      getWebserviceJwt(){//recupération du jwt 
        this._http.get("url ...").subscribe(
          data => {
            this.jeton = data;  //jeton formulaire contact
            console.log(data);
          }
        );
      }
    si je fais un console.log(data), j'ai bien le jeton dans la console
    j'action la méthode getWebserviceJwt() depuis un component "rdv" lorsque je clique sur un bouton:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <button mat-raised-button (click)="validRDV()">Prendre le rendez-vous</button>
    voici la méthode qui est à l'intérieur du component "rdv"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      validRDV(){//on valide et demande d'enregistrement du rendez-vous
     
        this._calendarService.setWbsRdv(this._RDV);
        this._visiteur.getWebserviceJwt();
        console.log(this._visiteur.jeton);
      }
    _visiteur est l'attribut qui appartient à la classe VisiteurService
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     private _visiteur: VisiteurService
    voici le visiteur service:

    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
     
    import { Injectable } from '@angular/core';
    import { HttpClient } from '@angular/common/http';
     
    @Injectable()
     
    export class VisiteurService {
     
      public wbsGetJeton: string = "https://monwebservice/recupjeton.php";
      public jeton: any = "pas de jeton";
     
     
      constructor(private _http:HttpClient) {
      }
     
      getWebserviceJwt(){//recupération du jwt 
        this._http.get('url...').subscribe(
          data => {
            this.jeton = data;  //jeton formulaire contact
          }
        );
      }
    console.log(this._visiteur.jeton) m'affiche 'pas de jeton '.
    Comment je dois charger correctement l'attribut jeton ?
    (si je clique sur 2 fois le bouton j'ai bien mon jeton et nom "pas de jeton")

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    composant RDV => service visiteur => vers l'api qui donne le jeton
    merci de vos réponse :)

  2. #2
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    Je pense avoir compris pourquoi cela ne fonctionne pas.
    il faut que le service s'occupe uniquement de donner la réponse du serveur sans y souscrire, puis c'est au component de souscire
    à l'observable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    //le service
      getWebserviceJwt(){//recupération du jwt 
        this._http.get("url ...");
      }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     validRDV(){//on valide et demande d'enregistrement du rendez-vous
        this._visiteur.getWebserviceJwt().subscribe(
          data => {
                     console.log(data);
          }
        );
      }
    Par contre serait t'il judicieux de sauvegarder tout le GET dans un localstorage ?
    afin qu'il puisse être réutiliser ultérieurement ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    setItem('jeton_observable', this._http.get("url ...");

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Août 2008
    Messages
    1 222
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 1 222
    Par défaut
    J'aurai un autre question , comment obtenir la réponse d'un attribut lorsqu'il est chargé ?

    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
     
    classe composant{
       public _service:Service;
       public recupvariable:string;
     
       recupVariablePret(){
            this._service.donneVariableApi().subscribe(
               data => {
           recupvariable= data;
          }
        )
      }
     
      afficheVariable(){
          console.log("la variable qui à été suscrit est" + this.recupvariable);
       }
    }
     
    classe Service {
     
    public variablePret = "pas encore arriver";
     
      donneVariableApi(){
         return this._http.get("urlAPI");
      }
     
     
    }
    si je fais appelle à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    console.log("la variable qui à été suscrit est" + this.recupvariable);
    cela me répondra

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    la variable qui à été suscrit est pas encore arriver

Discussions similaires

  1. [2.x] Appeler un template depuis un service
    Par Sergei75 dans le forum Symfony
    Réponses: 2
    Dernier message: 02/01/2012, 23h46
  2. appel prog externe depuis service
    Par tbar403 dans le forum Général Python
    Réponses: 2
    Dernier message: 26/03/2010, 13h24
  3. Réponses: 5
    Dernier message: 31/10/2007, 09h17
  4. Réponses: 3
    Dernier message: 21/11/2006, 22h05
  5. [BCB6]Appel d’une form depuis une form avec showmodal
    Par almisuifre dans le forum C++Builder
    Réponses: 4
    Dernier message: 13/11/2006, 19h14

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