У меня есть простой угловой компонент, который реализует такую сетку ag:
<ag-grid-angular
*ngIf="data"
domLayout='autoHeight'
class="ag-theme-material"
suppressFieldDotNotation="true"
[pagination]="true"
[paginationPageSize]="5"
[defaultColDef]="defaultColDef"
[gridOptions]="gridOptions"
[frameworkComponents]="frameworkComponents"
[rowData]="data.rowData"
[columnDefs]="data.columnDefs"
(gridReady)="onGridReady($event)"
(cellKeyPress)="onCellKeyPress($event)">
</ag-grid-angular>
Затем я использую этот компонент в других компонентах, где мне нужно отображать данные в виде сетки.
<shared-grid [data]="projectStore.datasetsGridData | async" (action)="onDatasetsTableAction($event)"></shared-grid>
Как видите, я использую наблюдаемое для установки columnDefs
и rowData
сетки.
Сетка настроена на использование компонента cellRenderer
, который реализует интерактивный элемент в одном из столбцов, например:
<div (click)="doSomething()">...</div>
Я заметил, что для тех сеток, в которых данные ([data] input
) постоянно изменяют ячейку с настраиваемым интерактивным элементом div, теряет интерактивность до тех пор, пока данные изменяются. Когда новые данные перестают поступать, div снова становится активным.
Я думаю, что это происходит из-за постоянного обновления сетки, но я не уверен на 100%. Если это так, есть ли какое-нибудь обходное решение, чтобы этот эффект прекратился?