Ag-Grid Angular Cell Renderer注入CellRendererService

时间:2018-07-03 12:39:29

标签: angular ag-grid ag-grid-ng2 cellrenderer

我想实现一个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注入我的角形单元渲染器吗?还是您有一个想法,如何以其他方式实现内部单元格渲染器?

0 个答案:

没有答案