首页 > 解决方案 > Ag-Grid Angular Cell Renderer 注入 CellRendererService

问题描述

我想实现一个 CellRenderer,它可以显示/隐藏它所连接的单元格(我们称之为ShowHideCellRenderer)。

我希望这个单元格渲染器将单元格渲染器 ( innerCellRenderer) 作为参数定义单元格在可见时如何渲染。

在 github 上的 ag-grid 存储库中,GroupCellRenderer它也使用了内部单元格渲染器:

https://github.com/ag-grid/ag-grid/blob/master/packages/ag-grid/src/ts/rendering/cellRenderers/groupCellRenderer.ts#L245

let rendererPromise:Promise<ICellRendererComp>;
if (params.fullWidth == true) {
    rendererPromise = this.cellRendererService.useFullWidthGroupRowInnerCellRenderer(this.eValue, params);
} else {
    rendererPromise = this.cellRendererService.useInnerCellRenderer(this.params.colDef.cellRendererParams, columnToUse.getColDef(), this.eValue, params);
}

// retain a reference to the created renderer - we'll use this later for cleanup (in destroy)
if (rendererPromise) {
    rendererPromise.then((value:ICellRendererComp) => {
        this.innerCellRenderer = value;
    })
}

但要做到这一点,我需要以某种方式将其注入CellRendererService到我的 CellRenderer 中。

当我使用 Angular 创建 CellRenderer 时,@Autowired装饰器似乎不起作用。

export class ShowHideCellRendererComponent implements ICellRendererAngularComp {
    @Autowired('cellRendererService')
    private cellRendererService: CellRendererService;

    public agInit(params: any): void {
        console.log(this.cellRendererService); // undefined
    }
}

有人知道如何将其CellRendererService注入我的角单元渲染器吗?或者您知道如何以另一种方式实现内部单元格渲染器?

标签: angularag-gridag-grid-ng2cellrenderer

解决方案


推荐阅读