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 4] Récupérer une valeur d'attribut pour le composant


Sujet :

Angular

  1. #1
    Membre confirmé

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

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut [Angular 4] Récupérer une valeur d'attribut pour le composant
    Bonjour,

    je souhaite récupérer une valeur d'un attribut html depuis la vu pour la traiter dans le composant
    voici ce que j'ai testé:
    page.component.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    <p >
      <span (leprix)="trois euro">
     
      </span>
    </p>
    voici le composant:

    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
     
     
    import { Component, OnInit } from '@angular/core';
     
    @Component({
      selector: 'app-prix',
      templateUrl: './prix.component.html',
      styleUrls: ['./prix.component.css']
    })
     
    export class PrixComponent implements OnInit {
      public prix:string ='je suis le prix';
     
     
      constructor() { 
        console.log(leprix);
      }
     
     
     
      ngOnInit() {
      }
     
     
     
    }
    comment je dois faire pour afficher dans ma console "trois euros" ?
    je souhaite que "trois euro" une chaine qui provient seulement du fichier html (pour le moment je souhaite pas le générer depuis un modèle).
    merci de vos réponse

  2. #2
    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
    Il manque la déclaration de ton paramètre leprix cf doc.

    Mais ton composant n'est pas utilisé dans le template que tu as fourni.

    Tu devrais faire les tutoriels.
    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

  3. #3
    Membre confirmé

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

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci de ta réponse, tu veux dire déclarer en @input ?

    @input c'est bien la variable qui part du template au composant et
    @output c'est la variable qui part du composant en template ?

    sinon c'est bien les parenthèse qu'il faut mettre pour transmettre de la vue au composant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    (depuisHTML)="abc"  // je transmet depuis html au composant
    [depuisHTML]="abc" //  la vue html va récupérer dans le composant l'attribut qui s'appelle depuisHTML
    voici ce que j'ai testé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    <div  (depuisHTML)="abc" class="menu four wide" *ngFor="let prix of tarif">
      <h1>
       numéro: {{prix.id}}  *  le produit: {{prix.produit}}  *  le prix: {{prix.prix}} 
      </h1>
    </div>

    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
     
    import { Component, OnInit, Input, Output } from '@angular/core';
    import {HttpModule,Http, Response,RequestOptions,Headers} from '@angular/http';
     
    @Component({
      selector: 'app-prix',
      templateUrl: './prix.component.html',
      styleUrls: ['./prix.component.css']
    })
     
    export class PrixComponent implements OnInit {
     
     @Input() depuisHTML:any; 
     
     
      tarif: Object;
     
      constructor(public http:Http) { 
        console.log(this.depuisHTML);
      }

    est ce que depuis HTML doit être situé obligatoirement situé à l'intérieur de la balise <app-prix> ?
    ou peut être mis dans le composant app-prix comme je l'ai codé dans prix.component.html .

  4. #4
    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
    Dans ton template à aucun moment je ne vois d'appel au composant. Il n'est donc pas invoqué.

    Ne le prends pas mal mais tes questions sont vraiment de l'ordre des tutoriels, je t'invite à les faire plutôt que de partir à l'aveuglette.
    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

  5. #5
    Membre confirmé

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

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    Merci de ta réponse, mais je ne comprend pas du premier coup comment réussir à récupérer la valeur voulu ...,

    j'ai essayer ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <article #art (click)="donneArticle(art)"   class="recupe_moi_ce_qui_est_ici" >
    dans le composant j'ai ma méthode:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      donneArticle(art){
        console.log(art);
      }
    en cliquant sur la zone article, j'arrive à avoir tout le html il suffira de le décomposer pour récupérer .
    par contre j'ai du faire un clique pour avoir toute la balise, comment on s'y prend pour faire un clique automatique.

  6. #6
    Membre habitué
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juillet 2017
    Messages : 81
    Points : 132
    Points
    132
    Par défaut
    Comme dit Marco, revois tranquillement les tutoriels. Je te conseille cette tram :

    - Déclaration d'un composant
    - Utilisation d'un composant
    - Passer un paramètre dans le composant (avec @Input)
    - Faire appel à un event depuis ton composant (avec @Output)

    Source des tutoriels : Anglais , Français

    Est-ce que tu pourrais poster au fur et à mesure que tu avances dans le tutoriel pour qu'on puisse t'aider?

    En espérant d'avoir aidé

  7. #7
    Membre confirmé

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

    Informations forums :
    Inscription : Août 2008
    Messages : 1 191
    Points : 595
    Points
    595
    Par défaut
    merci du tip,
    j'ai saisi qu'il faut un événement pour pouvoir récupérer une valeur d'un attribut

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

Discussions similaires

  1. Préselectionner une valeur par défaut pour un composant spinner
    Par stc074 dans le forum Composants graphiques
    Réponses: 2
    Dernier message: 11/06/2015, 19h50
  2. [Toutes versions] récupérer une valeur de combobox pour changer cellule
    Par jackcaro dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 25/05/2011, 15h04
  3. récupérer une valeur d'attribut
    Par titiofparis dans le forum XML/XSL et SOAP
    Réponses: 9
    Dernier message: 07/09/2010, 08h27
  4. problème pour récupérer une valeur dans ma bd (débutante)
    Par auryn111 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 26/08/2005, 17h49
  5. Réponses: 2
    Dernier message: 17/06/2005, 13h38

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