当表最初接收异步检索的数据时,Ag-grid 使用 ngOnChanges 完美应用 defaultColDef 格式(cellStyle 和 cellRenderer)。但是,如果包含网格的组件被隐藏,然后通过 *ngIf 条件重新初始化,则表将使用正确的数据重新填充,但即使像以前一样再次触发 ngOnChanges,也不会重新应用 defaultColDef 格式,并且this.gridOptions.defaultColDef = this.defaultColDef;在 ngOnChanges 的 onGridReady 回调中设置,我可以看到 this.defaultColDef 在调试期间被定义为正确的对象。
即使 this.defaultColDef 在 ngOnInit() 中再次重新定义,甚至在 ngOnChanges() 中再次重新定义(为了简洁起见,仅包含在下面示例代码的构造函数中)也是如此。此外,如果在 ngOnInit() 内重复整个 onGridReady: (params) 调用。
相反,如果在父级中构造 columnDefs 对象时将相同的 cellStyle 和 cellRenderer 作为属性分配给 columnDefs,则当隐藏并重新显示(重新初始化)网格组件时,可以正确应用格式设置。
export class ResultsTableComponent implements OnInit, OnChanges {
@Input() label;
gridOptions: GridOptions ;
gridApi;
defaultColDef;
get query(): string {
return this.searchService.query;
};
get rowData() {
return this.searchService.rowDataForAgGrid;
};
@Input()
set rowData(value) {
this.searchService.rowDataForAgGrid=value;
};
get columnDefs() {
return …Run Code Online (Sandbox Code Playgroud)