Angular MatPaginator doesn`t get initialized
In my case, the <mat-paginator>
element was inside a container that had an *ngIf
on it, which did not render until the data loaded asynchronously. This causes this.paginator
to be undefined
even in ngAfterViewInit
. This causes it to silently fail as MatTableDataSource
has no problem with you setting paginator
to undefined
.
The solution was to move the <mat-paginator>
outside of the *ngIf
'd container
Hopefully, this helps someone who is in the same situation as me.
I resolved a similar issue by surrounding the instantiation with a timeout. Try this :
setTimeout(() => this.dataSource.paginator = this.paginator);
Although selected answer works and solves the problem it is still a workaround. This is proper and more elegant way to deal with the problem.
Try adding AfterViewInit
interface to your class, then put this.dataSource.paginator = this.paginator
inside ngAfterViewInit()
method
ngAfterViewInit() {
this.dataSource.paginator = this.paginator
}
then you would not have to call workaround setTimeout
.