Я хочу реализовать CellRenderer, который может показать / скрыть ячейку, к которой он присоединен (назовем это ShowHideCellRenderer
).
Я хочу, чтобы средство визуализации ячеек использовало средство визуализации ячеек (innerCellRenderer
) в качестве параметра, который определяет способ визуализации ячейки, если она видима.
В репозитории ag-grid на github есть 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
в мой угловой клеточный рендер? Или у вас есть идея, как реализовать рендеринг внутренней ячейки другим способом?