我想实现一个CellRenderer,它可以显示/隐藏附加的单元格(我们称之为ShowHideCellRenderer
)。
我希望此单元格渲染器采用一个单元格渲染器(innerCellRenderer
)作为参数,该参数定义在可见的情况下如何渲染该单元格。
在github上的ag-grid存储库中,有一个GroupCellRenderer
,它也使用一个内部单元格渲染器:
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
注入我的角形单元渲染器吗?还是您有一个想法,如何以其他方式实现内部单元格渲染器?