我刚刚开始在我的应用程序中实现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);
}发布于 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)https://stackoverflow.com/questions/52564626
复制相似问题