【发布时间】:2017-07-04 20:06:38
【问题描述】:
我在 angular 的 ag-grid 中遇到了奇怪的行为,不知道我做错了什么还是一个错误。
用
初始化 agggrid 后this.gridOptions = {
enableSorting: true,
rowHeight: 50,
suppressDragLeaveHidesColumns: true,
enableColResize: true,
domLayout: 'autoHeight',
rowSelection: 'single',
};
和
<ag-grid-angular
#agGrid
[rowData]="articleArray"
[gridOptions]="gridOptions"
(cellClicked)="showDetails($event)"
(gridReady)="onGridReady()"
(modelUpdated)="onModelUpdated()"
(gridSizeChanged)="sizeToFit()"
></ag-grid-angular>
并通过
获得网格中行的结果顺序 updateArticleOrder() {
const result: string[] = [];
this.gridOptions.api.forEachNodeAfterFilterAndSort(rowNode => result.push(rowNode.data.id));
this.articleOrderChanged$.emit(result);
}
我注意到顺序与[rowData]="articleArray" 中使用的原始输入不同。准确地说,11 个项目已移动到网格的底部,并且网格从原始索引 11 开始。为什么会这样,我该如何避免呢?排序后,updateArticleOrder() 在onModelUpdated() 内部被调用,我再次得到正确的顺序,单击第一行时显示索引 0。
[EDIT] 我注意到只有在初始化网格时才会出现这个问题。当网格已经可见后我的 articleArray 更新时,this.gridOptions.api.forEachNodeAfterFilterAndSort 会以正确的顺序为我提供新项目。
【问题讨论】: