J'essaie d'obtenir l'actualisation de ma table angulaire après la mise à jour des données utilisées dans la table.
La documentation indique "vous pouvez déclencher une mise à jour des lignes rendues par la table en appelant sa méthode renderRows ()". mais ce n'est pas comme un composant enfant normal où je peux utiliser quelque chose "@ViewChild (MatSort) sort: MatSort;" puisque je ne l'importe pas.
Si je l'importe et essaie quelque chose comme @ViewChild ('maTable') myTable: MatTableModule; alors je reçois une erreur qui dit que renderRows () n'existe pas sur ce type.
Comment puis-je appeler cette méthode? Merci!
Mon extrait de code de table:
<mat-table #table [dataSource]="dataSource" myTable class="dataTable">
Assurez-vous d'importer ViewChild et MatTable:
import {Component, ViewChild} from '@angular/core';
import {MatTable} from '@angular/material';
Ensuite, vous pouvez obtenir une référence à la table en utilisant ViewChild (notez qu'un type T est requis sur MatTable - je viens d'en utiliser une, mais si vous avez une table typée, vous devrez utiliser ce type:
@ViewChild(MatTable) table: MatTable<any>;
Ensuite, lorsque vous modifiez la table de quelque manière que ce soit, vous devrez appeler la méthode renderRows ().
delete(row: any): void {
/* delete logic here */
this.table.renderRows();
}
Voici un exemple de travail très simple: https://stackblitz.com/edit/angular-bxrahf
Certaines sources trouvées lors de la résolution de ce problème moi-même: