【问题标题】:cellRendererFramework no component factory found ag-grid angular2cellRendererFramework 找不到组件工厂 ag-grid angular2
【发布时间】:2018-03-10 00:41:47
【问题描述】:
尝试将 cellRendererFramework(v13.1.2) 与 angular2 一起使用,但出现此错误:
ProductComponentComponent.html:7 ERROR 错误:未找到 [object Object] 的组件工厂。你把它添加到@NgModule.entryComponents 了吗?
在 noComponentFactoryError (core.es5.js:3202)
ag-grid v13.1.2 不支持 cellRendererFramework 吗?还是有其他问题。
之前有人问过类似的问题,但没有找到任何有用的答案。请帮助解决这个问题。提前致谢。
【问题讨论】:
标签:
angular
angular-cli
ag-grid
ag-grid-ng2
【解决方案1】:
可能有点晚了,但我遇到了同样的问题。
这是我在网格选项中修复它的方法:
this.gridOptions = <GridOptions>{
...
frameworkComponents: {
"checkboxRenderer": CheckboxCellRendererComponent
}
}
然后在 defs 列中:
{
field: "present",
headerName: "User was present",
cellRenderer: "checkboxRenderer"
}
【解决方案3】:
如果上述两种解决方案都不起作用,那么很可能是您在从服务器加载数据时将string 传递给ComponentFactoryResolver,但它应该是组件类型。
查看此网址:Stack overflow
【解决方案4】:
前面的答案中提到了几件事,我通过做几件事让它工作。
在模块定义中,为declarations 和entryComponents 添加您的渲染器。
```
declarations: [ReportHyperlinkCellRenderer],
entryComponents: [ReportHyperlinkCellRenderer],
```
将您的GridOptions 定义为
```
{
frameworkComponents: {
"hyperlinkRenderer": ReportHyperlinkCellRenderer
}
}
```
之后,你的ColDef 就可以这么简单了
```
{
cellRenderer: "hyperlinkRenderer"
}
```
【解决方案5】:
这就是我所做的。 (版本 19.1.1)。
在app.module.ts 中,使用AgGridModule.withComponents 将您的渲染器导入为
@NgModule({
declarations: [
AppComponent
],
imports: [
...
AgGridModule.withComponents([
ActionRendererComponent,
YesnoRendererComponent,
StatusRendererComponent
])
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }