Вот один из способов сделать это:
ручка rowDataChanged
в вашей разметке:
<ag-grid-angular
class="ag-dark"
[rowData]="messages"
[columnDefs]="columnDefs"
[gridOptions]="gridOptions"
(bodyScroll)="handleScroll($event)"
(rowDataChanged)="handleRowDataChanged($event)">
</ag-grid-angular>
В обработчике для rowDataChanged
вызовите ensureVisibleIndex
, чтобы перейти к последней добавленной строке:
gridOptions: GridOptions = {
suppressScrollOnNewData: true,
}
handleRowDataChanged(event) {
const index = this.messages.length - 1;
this.gridOptions.api.ensureIndexVisible(index, 'bottom');
}
Демо-версия:
https://stackblitz.com/edit/angular-ag-grid-stuck-to-bottom
В этом коде также есть некоторая логика, когда таблица должна быть прокручена до конца или не основана на позиции прокрутки.