Je boucle dynamiquement à travers les onglets et je voudrais ajouter un événement (cliquez) pour pouvoir charger différentes options lorsque je sélectionne l'onglet.
N'est-il pas possible d'avoir un événement (clic) sur? J'ai essayé avec (selectChange), mais je n'arrive pas à saisir bank.id depuis ma boucle lors de la création d'onglets.
N'est-il pas possible d'ajouter un simple événement de clic sur des onglets créés dynamiquement ??
<mat-tab-group>
<mat-tab label="All transactions">
<mat-list>
<mat-list-item *ngFor="let bank of banks">
<h4 mat-line>{{bank.fullName}}</h4>
</mat-list-item>
</mat-list>
</mat-tab>
<mat-tab *ngFor="let bank of banks" (click)="fetchAccounts(bank.id)" label="{{bank.fullName}}">
<mat-list>
<mat-list-item *ngFor="let account of accounts">
<h4 mat-line>{{bank2.fullName}}</h4>
</mat-list-item>
</mat-list>
</mat-tab>
<!-- <mat-tab label="Test Bank" disabled>
No content
</mat-tab> -->
</mat-tab-group>
N'est-il pas possible d'ajouter un simple événement de clic sur des onglets créés dynamiquement? - non je pense, ce n'est pas possible, mais vous pouvez utiliser (selectedTabChange ) sur <mat-tab-group>
comme:
<mat-tab-group (selectedTabChange)="yourFn($event)">
L'objet événement contient un index, vous pouvez donc faire quelque chose comme ceci:
yourFn($event){
this.fetchAccounts(this.banks[$event.index].id)
}
Je n'ai pas le même problème que toi. Tout ce dont j'avais besoin était un simple clic sur un mat-tab
. Je modifie l'itinéraire sur un événement de clic, mais l'événement de clic ne s'est pas lié à l'onglet. J'ai fait quelques recherches et ce que vous pouvez faire est de créer une étiquette personnalisée sur laquelle vous pouvez placer l'événement de clic. Par exemple...
<mat-tab>
<ng-template mat-tab-label>
<span (click)="onClick()">Custom label</span>
</ng-template>
</mat-tab>
Cela fonctionnera si vous créez l'onglet de manière dynamique. Pour développer votre exemple ...
<mat-tab *ngFor="let i of [1, 2, 3]">
<ng-template mat-tab-label>
<span (click)="onClick()">Custom label {{i}}</span>
</ng-template>
</mat-tab>
Le seul problème que j'ai eu était avec le css pour le span
. Il n'a pas de rembourrage, vous devez donc cliquer sur la portée elle-même pour que l'événement fonctionne. Si vous cliquez à l'extérieur mais dans l'onglet, l'onglet va changer mais l'événement ne se déclenchera pas.
Pour résoudre ce problème, agrandissez le rembourrage sur cette plage. Par exemple,
.custom-label { padding: 15px 0 15px 0; }
Celui-ci, par exemple, a fonctionné pour moi, mais il y avait encore de la place à gauche et à droite que le clic ne voulait pas déclencher. Je ne résoudrai pas celui-là.
utilisez [selectedIndex] pour définir une boucle dynamique à travers