cellRendererFramework没有组件工厂找到ag-grid angular2

问题描述 投票:1回答:5

尝试将angularRendererFramework(v13.1.2)与angular2一起使用,但却收到此错误:

ProductComponentComponent.html:7错误错误:找不到[object Object]的组件工厂。你有没有把它添加到@ NgModule.entryComponents? at noComponentFactoryError(core.es5.js:3202)

ag-grid v13.1.2中是否不支持cellRendererFramework?还是有其他问题。

之前已经提出了类似的问题,但没有找到任何有用的答案。请帮助解决这个问题。提前致谢。

angular angular-cli ag-grid ag-grid-ng2
5个回答
1
投票

我将组件添加到@NgModule的entryComponents中,正如错误消息所指向的那样。例如...

@NgModule({
imports: [
    CommonModule,
    SharedModule,
    ...
],
declarations: [
    ...
    myRendererComponent,
    ...
],
providers: [
    ...
],
entryComponents: [
    myRendererComponent
]

https://hassantariqblog.wordpress.com/2017/02/12/angular2-error-no-component-factory-found-did-you-add-it-to-ngmodule-entrycomponents/


1
投票

这就是我做的。 (第19.1.1版)。

app.module.ts中,用AgGridModule.withComponents导入你的渲染器

    @NgModule({
      declarations: [
        AppComponent
      ],
      imports: [
         ...
           AgGridModule.withComponents([
              ActionRendererComponent,
              YesnoRendererComponent, 
              StatusRendererComponent
          ])
      ],
      providers: [],
      bootstrap: [AppComponent]
    })
    export class AppModule { }

0
投票

可能有点晚了,但我遇到了同样的问题,结果却来了。以下是我在网格选项中修复它的方法:

this.gridOptions = <GridOptions>{
  ...
  frameworkComponents: {
    "checkboxRenderer": CheckboxCellRendererComponent
  }
}

然后在列defs:

{
  field: "present",
  headerName: "User was present",
  cellRenderer: "checkboxRenderer"
}

0
投票

如果以上两个解决方案都不起作用,那么当您从服务器加载数据时,很可能是将string传递给ComponentFactoryResolver,但它应该是组件类型。

检查这个网址:Stack overflow


0
投票

在前面的答案中提到过几件事,我通过做几件事来完成它。

在模块定义中,为declarationsentryComponents添加渲染器。

```

declarations: [ReportHyperlinkCellRenderer],
entryComponents: [ReportHyperlinkCellRenderer],

```

将你的GridOptions定义为

```

{
  frameworkComponents: {
    "hyperlinkRenderer": ReportHyperlinkCellRenderer
  }
}

```

之后,你的ColDef可以很简单

```

{
  cellRenderer: "hyperlinkRenderer"
}

```

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.