Angular 以间隔更新 matTableDatasource 使滚动到页面顶部

Angular updating matTableDatasource with interval brings scroll to the top of page

我有一个 mat-table 需要更新有关更改的信息。我设置了一个间隔,在间隔内我调用了一个类似于

的方法
updateMatTable(offset: number, size: number): void {

        offset = offset * size;

        /* GET DATA FROM REST SERVICE */

            this.dataSource = new MatTableDataSource(this.newTableData.dataRows);

        });

    }

似乎将 dataSource 等同于 newTableData 会将滚动位置带到页面顶部 只有当我们处于可以在 mat-table 下方看到的滚动位置时(靠近页面底部 ) 并且 table 需要向下滚动

这是库的错误还是我遗漏了一些关于 mat-tables 的东西。

感谢您的回答

好的,我在代码下添加了一个变化检测器,它的行为并不奇怪。我想要一个解释。

    updateMatTable(offset: number, size: number): void {
    
            offset = offset * size;
    
            /* GET DATA FROM REST SERVICE */
    
                this.dataSource = new MatTableDataSource(this.newTableData.dataRows);

                this.changeDetectorRef.detectChanges();
    
            });
    
        }