3 votes

Faire différentes choses dans la même fonction selon le composant html qui a appelé cette fonction.

Je suis en train de faire une application basique de basculement en angulaire.j'ai deux boutons de basculement.j'affiche un message dans le basculement.je veux appeler la même fonction sur le changement de basculement mais faire des choses différentes en fonction du bouton qui a été basculé.est-ce possible ou dois-je utiliser deux fonctions différentes ? Merci d'avance pour votre aide.

Voici le code de mon modèle :

<mat-card class="card" fxLayout="column" fxLayoutAlign="center center" >
<form class="example-form" [formGroup]="formGroup" (ngSubmit)="onFormSubmit()" ngNativeValidate>

  <mat-action-list>
    <mat-list-item > <mat-slide-toggle       
      (change)="onChange($event);displayMessage($event)"   formControlName="Policy1" >
      <span class="label">{{message}}</span></mat-slide-toggle></mat-list-item> 
    <mat-list-item > <mat-slide-toggle  (change)="onChange($event)"  formControlName="Policy2">Policy2</mat-slide-toggle></mat-list-item>

  </mat-action-list>
  <p>Form Group Status: {{ formGroup.status}}</p>

  <button mat-raised-button [disabled]="disable" class="button" type="submit">Save Settings</button>

</form>
</mat-card>

La fonction que j'appelle depuis le bouton de basculement :

  displayMessage(e){
    if(e.checked)
    {
      this.message = 'Toggled';
    }
      else
      this.message = 'Slide';

  }

2voto

Daniel Points 3536

En $event de l'objet (change) a un srcElement auquel vous pouvez vous référer lorsque vous voulez savoir quel élément a causé le changement.

Si vous voulez récupérer l'identifiant de l'élément qui a appelé la fonction, vous le faites avec event.srcElement.id

1voto

mbojko Points 9720

Vous pouvez passer plus d'arguments au gestionnaire :

<mat-slide-toggle *ngFor="let item of thingsToDo; let i = index"
   (change)= "onToggle($event, item.id, i)">

onToggle = (event, id, indexInArray) => { //...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X