Bonjour,
je cherche à créer un mat-table avec des définitions de colonnes déjà pres défini car utilisés à plusieurs endroits.
parent Component
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <!-- displayedColumns: string[] = ['firstName', 'lastName', 'actions']--> <app-table [data]="users" [displayedColumns]="displayedColumns" [busy]="busyLoading"> <!-- action --> <ng-container matColumnDef="actions"> <th mat-header-cell *matHeaderCellDef>{{'COMMON.ACTION'}}</th> <td mat-cell *matCellDef="let row"> <button type="button" [routerLink]="['/users/' + row.id]">edit</button> </td> </ng-container> </app-table>
app-table component
<!-- ERROR Error: Could not find column with id "actions" -->
Code html : 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 <table mat-table [dataSource]="dataSource"> <ng-container matColumnDef="firstName"> <th scope="col" mat-header-cell *matHeaderCellDef>{{'USER.FIRST_NAME' | translate}}</th> <td mat-cell *matCellDef="let row">{{row.firstName}}</td> </ng-container> <!-- serialNumber --> <ng-container matColumnDef="lastName"> <th scope="col" mat-header-cell *matHeaderCellDef>{{'USER.LASTE_NAME' | translate}}</th> <td mat-cell *matCellDef="let row">{{row.lastName}}</td> </ng-container> <!-- what I'm trying to do --> <ng-content></ng-content> <tr mat-header-row *matHeaderRowDef="displayedColumns; sticky: true"></tr> <tr mat-row *matRowDef="let row; columns: displayedColumns;"></tr> </table>
J'essayes donc de définir certaines colonnes dans un parent, passer ces définitions par le biez de ng-content à l'enfant, en l'occurrence app-table.
et ensuite affiches ces colonnes comme si le code avait était écrit dans l'enfant, un peu comme si le code passé en paramètre, avait été l'équivalent d'un include d'un morceau de text
Auriez vous une idée de comment procéder ?
Merci d'avance
Partager