首页 文章

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

提问于
浏览
0

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

ProductComponentComponent.html:7 ERROR Error: No component factory found for [object Object]. Did you add it to @NgModule.entryComponents? at noComponentFactoryError (core.es5.js:3202)

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

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

5 回答

  • 0

    我将组件添加到@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

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

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

    然后在列defs:

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

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

    检查此网址:Stack overflow

  • 0

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

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

    
    ```java
    declarations: [ReportHyperlinkCellRenderer],
    entryComponents: [ReportHyperlinkCellRenderer],
    
    
    将你的 `GridOptions` 定义为
    
    
    {
      frameworkComponents: {
        "hyperlinkRenderer": ReportHyperlinkCellRenderer
      }
    }
    
    
    之后,你的 `ColDef` 可以很简单
    
    
    {
      cellRenderer: "hyperlinkRenderer"
    }
    
  • 0

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

    app.module.ts 中,使用 AgGridModule.withComponents as导入渲染器

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

相关问题