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 :

Réutiliser un élément du DOM dans plusieurs composants


Sujet :

Angular

  1. #1
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut Réutiliser un élément du DOM dans plusieurs composants
    Bonjour,

    Je voudrais savoir quelle est la meilleure solution pour réutiliser un élément du DOM à travers plusieurs composants
    Je dois en effet récupérer un form d'un compsant afin de le réinjecter à un endroit complètement différent de mon appli. Je suis entrain de bosser sur le décorateur @viewChild, est-ce que ça serait possible de l'utiliser pour ça ?
    Du coup, je me demande aussi comment faire suivre la logique contenu ds ces éléments comme des appels de méthode d'event ou des propriétés liées par databinding définies dans le typescript
    merci, je pensais faire des @Input()

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    faut plutot voir comme un composant qui contient un formulaire

    tu as un exemple ici:
    https://stackblitz.com/edit/angular-...o.component.ts

    dans l'exemple tu as diffèrent formulaire mais rien ne t'empêche de faire appelle au même composant formulaire plusieurs fois
    par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <form [formGroup] ="nestedForm" (ngSubmit) = "onSubmit()">
      <app-basic-info formControlName="basicInfo1"></app-basic-info>
      <app-basic-info formControlName="basicInfo2"></app-basic-info>
      <app-basic-info formControlName="basicInfo3"></app-basic-info>
    ...
    ...
    public nestedForm: FormGroup = new FormGroup({
      basicInfo1: new FormControl(""),
      basicInfo2: new FormControl(""),
      basicInfo3: new FormControl("")
    });

  3. #3
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    Ok merci bcp, je suis parti comme ça effectivement. Mais du coup je ne saisis pas l'enjeu de @ViewChild(), il faut que je prenne le tps de faire un tuto

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    @viewchild permet d'acceder à la vue et au controleur d'un composant
    pour la vue, tu peux modifier le css ou le DOM
    pour le controleur tu peux accéder aux fonctions et aux propriétés du composant
    par exemple, tu as un composant select ... tu fais un viewChild sur le select et tu récupère l'element qui a été sélectionné dans le composant viewchild

    mais il faut éviter d'utiliser viewChild

    quand on doit modifier le css ou le DOM, il faut toujours privilégié les Directives
    l'exemple du select il est préferable de privilégier les communications classiques (output(), par service....)

    j'utilise jamais viewchild !

    je dirais que viewchild c'est utile quand tu fais des widgets ou tu dois travailler énormement sur le css ou le DOM et donc dans ce cas, c'est pratique

  5. #5
    Membre averti
    Homme Profil pro
    Reconversion
    Inscrit en
    Novembre 2018
    Messages
    502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Reconversion
    Secteur : Santé

    Informations forums :
    Inscription : Novembre 2018
    Messages : 502
    Points : 300
    Points
    300
    Par défaut
    je n'avais pas vu ta réponse ! Du coup j'ai créé un composant de tte pièce, merci de votre aide

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

Discussions similaires

  1. Supprimer un élément du DOM dans un plug-in
    Par cahnory dans le forum jQuery
    Réponses: 2
    Dernier message: 14/04/2010, 13h09
  2. Réponses: 14
    Dernier message: 13/09/2007, 12h26
  3. [DOM] Placer des éléments du DOM dans un array()
    Par strat0 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/08/2007, 15h06
  4. Réponses: 3
    Dernier message: 29/06/2007, 17h56
  5. Plusieurs composant dans une Jframe
    Par toitoine01 dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 31/03/2006, 15h47

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