web-dev-qa-db-fra.com

tapis-paginateur pause lorsque la table de matelas est à l'intérieur du NGIF

J'ai un angular qui utilise mat-table et mat-paginator Pour une certaine vue, le problème est que la vue a une vue de la grille et une vue de table avec une bascule, la vue grille est par défaut et la table est masquée à l'aide d'un NGIF lorsque la vue de la grille est active. Si je défini la valeur par défaut sur la vue de la table, la pagination fonctionne bien, à moins que je sève à la grille de visualisation et de retour, si la valeur par défaut est définie sur la grille, il se casse lorsque je échange sur la vue de la table. Je suppose que c'est parce que la table est cachée lorsque ce code s'exécute:

this.sliceList = new MatTableDataSource<Slice>(result);
this.sliceList.paginator = this.paginator;

J'ai essayé la console journalisation this.sliceList et sliceList.paginator est indéfini lorsque la vue de la grille est défaillante, donc je suppose que c'est le problème. Comment puis-je réparer cela?

8
jmona789

Créer dans fichier.html the <div> avec ces identifiants:

div id="dataFound" style="display:none;"
div id="dataNotFound" style="display:none;"

Dans le fichier.ts

document.getElementById("dataFound").style.display = 'none';    /* ngIf = false     
document.getElementById("dataNotFound").style.display = 'inline'; /* ngIf = true
0
Reinaldo Garcia

Cela résoudra mon problème dans ANgular 10

Réglage statique sur FALSE Le truc.

@ViewChild(MatPaginator, {static: false}) paginator: MatPaginator;
  @ViewChild(MatSort, {static: false}) sort: MatSort;

    ngAfterViewInit() {
        setTimeout(() => {
          this.matTableConfig.dataSource = new MatTableDataSource(this.matTableConfig.dataSource);
          this.matTableConfig.dataSource.paginator = this.paginator;
          this.matTableConfig.dataSource.sort = this.sort;
      });
0
San Jaisy