尝试将angularRendererFramework(v13.1.2)与angular2一起使用,但却收到此错误:
ProductComponentComponent.html:7错误错误:找不到[object Object]的组件工厂。你有没有把它添加到@ NgModule.entryComponents? at noComponentFactoryError(core.es5.js:3202)
ag-grid v13.1.2中是否不支持cellRendererFramework?还是有其他问题。
之前已经提出了类似的问题,但没有找到任何有用的答案。请帮助解决这个问题。提前致谢。
我将组件添加到@NgModule的entryComponents中,正如错误消息所指向的那样。例如...
@NgModule({
imports: [
CommonModule,
SharedModule,
...
],
declarations: [
...
myRendererComponent,
...
],
providers: [
...
],
entryComponents: [
myRendererComponent
]
这就是我做的。 (第19.1.1版)。
在app.module.ts
中,用AgGridModule.withComponents
导入你的渲染器
@NgModule({
declarations: [
AppComponent
],
imports: [
...
AgGridModule.withComponents([
ActionRendererComponent,
YesnoRendererComponent,
StatusRendererComponent
])
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
可能有点晚了,但我遇到了同样的问题,结果却来了。以下是我在网格选项中修复它的方法:
this.gridOptions = <GridOptions>{
...
frameworkComponents: {
"checkboxRenderer": CheckboxCellRendererComponent
}
}
然后在列defs:
{
field: "present",
headerName: "User was present",
cellRenderer: "checkboxRenderer"
}
如果以上两个解决方案都不起作用,那么当您从服务器加载数据时,很可能是将string
传递给ComponentFactoryResolver
,但它应该是组件类型。
检查这个网址:Stack overflow
在前面的答案中提到过几件事,我通过做几件事来完成它。
在模块定义中,为declarations
和entryComponents
添加渲染器。
```
declarations: [ReportHyperlinkCellRenderer],
entryComponents: [ReportHyperlinkCellRenderer],
```
将你的GridOptions
定义为
```
{
frameworkComponents: {
"hyperlinkRenderer": ReportHyperlinkCellRenderer
}
}
```
之后,你的ColDef
可以很简单
```
{
cellRenderer: "hyperlinkRenderer"
}
```