我刚刚开始在我的应用程序中实现ag-grid。
我想以编程方式配置它,我想将所有agGrid配置相关代码放在Helper.ts中的一个单独的函数中。
我想在我所有的应用程序中使用这个函数来配置agGrid,这样我就可以从一个地方管理agGrid。
我的代码如下所示,但它似乎不起作用:
帮助者类别代码:
public ConfigureAgGrid(gridOptions: GridOptions): GridOptions {
rowSelection: 'multiple',
gridOptions.columnDefs = columnDefs;
gridOptions.rowData = data;
onSelectionChanged: this.onSelectionChanged,
gridOptions.api.sizeColumnsToFit();
return gridOptions;
}组件代码:
onGridReady(gridOptions: GridOptions) {
this.helperService.ConfigureAgGrid(gridOptions);
}发布于 2018-09-29 04:22:33
在ag-网格网站中,有时gridReady网格事件可以在角度组件准备好接收它之前触发,因此在角度环境中,在使用API之前依赖AfterViewInit更安全。
发布于 2019-08-14 09:15:28
我使用抽象类进行公共设置。
export abstract class AgGridDatasource {
private _gridOptions: GridOptions = DEFAULT_GRID_OPTIONS;
private _gridApi: GridApi;
private _gridColumnApi: ColumnApi;
protected constructor(gridOptions: GridOptions) {
this._gridOptions = Object.assign({}, this._gridOptions, gridOptions);
}
refreshColumns(): void {
if (this._gridApi) {
this._gridApi.setColumnDefs(this.createColumns());
}
}
abstract createColumns(): AbstractColDef[];
onGridReady(event): void {
this._gridApi = event.api;
this._gridColumnApi = event.columnApi;
}
get gridOptions(): GridOptions {
return this._gridOptions;
}
get gridApi(): GridApi {
return this._gridApi;
}
get gridColumnApi(): ColumnApi {
return this._gridColumnApi;
}
}DEFAULT_GRID_OPTIONS看的地方
export const DEFAULT_GRID_OPTIONS: GridOptions = {
localeText: AgGridLocaleText,
defaultColDef: AgGridDefaultColDef,
rowData: null,
suppressDragLeaveHidesColumns: true,
suppressNoRowsOverlay: false,
suppressLoadingOverlay: false,
loadingOverlayComponent: 'customLoadingOverlayComponent',
noRowsOverlayComponent: 'customNoRowsOverlayComponent'}
最后,我使用构造函数的无限网格类可以覆盖默认的网格选项。
export abstract class AgGridInfinityDatasource<T> extends AgGridDatasource implements IDatasource {
protected constructor(gridOptions: GridOptions,
super(Object.assign({},
{
rowModelType: 'infinite',
pagination: false,
rowSelection: 'none',
suppressCellSelection: true,
cacheBlockSize: 100,
}
, gridOptions));
(other code)发布于 2020-02-04 09:58:17
您需要gridOptions来初始化网格,这样就不会触发onGridReady事件。我建议你这样做;
在你的同伴的onInit
ngOnInit() {
this.gridOption = <GridOptions>this.helperService.ConfigureAgGrid(gridOptions);
}https://stackoverflow.com/questions/52564626
复制相似问题