此问题可能与 MatPaginator
的 ngAfterViewInit()
钩子函数有关。考虑在 ngAfterViewInit()
中手动触发初始变更检测,以便启用第一页的正确工作。 示例代码如下:
import { Component, OnInit, ViewChild } from '@angular/core';
import { MatPaginator } from '@angular/material/paginator';
@Component({
selector: 'app-my-component',
templateUrl: './my-component.component.html',
styleUrls: ['./my-component.component.css']
})
export class MyComponent implements OnInit {
@ViewChild(MatPaginator) paginator: MatPaginator;
constructor() { }
ngOnInit() {
}
ngAfterViewInit() {
this.paginator._changePageSize(this.paginator.pageSize);
}
//其他组件代码省略
}
在上面的代码示例中,我们通过从 Material MatPaginator
中引入 ViewChild
,在组件中引用 MatPaginator
本身,并在 ngAfterViewInit()
钩子函数中手动触发了 _changePageSize()
方法。 _changePageSize()
方法实际上只是通过更改内部方案来更新页面和页面数量,但这足以激活 Angular 变更检测并呈现正确的第一页。