mat-table 以编程方式跳到特定行

mat-table skip to specific row programmatically

我正在通过 angular material 的 mat-table 组件实现 table。 当我的代码中的某个事件被触发时,我想跳到特定的行。

到目前为止,我尝试在行和虚拟滚动中使用 (focus) 事件。

但我觉得我漏掉了一些东西,它应该比这更简单。

我发现 this question 并针对这些进行了一些更改,这将解决我的问题。
简而言之 - scrollIntoView - 我的代码附在下面,如果下次有人需要它的话。

//.tpl
<tr mat-row
          #matrow
          [attr.serialNumber] = row.serialNumber
          [ngClass]="{'selectedRow': selectedNode && selectedNode.serialNumber === row.serialNumber}"
          *matRowDef="let row; columns: displayedColumns;"
 ></tr>

// component.ts 
// selected point is your desierd element from data source
 scrollRowToView(selectedPoint) {
    const row = this.rows.find(r => 
    r.element.nativeElement.getAttribute('serialNumber') === selectedPoint.serialNumber);
    if (row != null) {
    row.element.nativeElement.scrollIntoView( {behavior: 'smooth', block: 'center', inline : 'center'});
 }

}