Using table with paginator. Binding data via http call. Version Angular 5, Material 5.0.4
On page event it fetch data from server, i tried to log if there is change in totallength variable but it's not .
What it is showing that length property of pagination which is return from page event is increasing.
It's weird i had also implemented on stackbliz to demonstrate and raise issue on github but there it works fine.
Same code ,same version but locally it's not working as expected.
Also adding gif to demonstrate.

HTML
<mat-paginator #paginator [length]="totalLength"
[pageSize]="limit"
(page)="changePage($event)">
</mat-paginator>
.TS
changePage(event) {
console.log(event,'total length',this.totalLength)
if (this.totalLength > this.dataSource.data.length) {
// next page
this.skip = event.pageSize * event.pageIndex;
this.getComplains(true);
}
}
getComplains(addNew:boolean = false) {
this.http.getCustomerComplains({
limit: this.limit,
skip: this.skip,
total: this.totalLength
}, (data) => {
if (data) {
setTimeout(() => {
if (addNew === true) {
let oldData = this.dataSource.data;
this.dataSource.data = oldData.concat(data.list);
} else {
if (data['list']) {
this.dataSource.data = data['list'];
}
this.changeDetectorRefs.detectChanges();
}
if (this.totalLength === 0) {
this.totalLength = data['total'];
}
})
}
}, (err) => {
console.log(err);
})}
limit:number = 10;
skip:number = 0;
totalLength:number = 0;
