Ng2-smart-table自定义渲染组件

时间:2017-09-14 16:59:15

标签: angular ng2-smart-table

我试图在我的ng2-smart-table中使用自定义渲染器组件,但是收到以下错误。

df1$D <- sub("^[^.]+\\.([^.]+)\\..*", "\\1", df1$A)

Whats Strange是该组件未定义的。

我的组件看起来像这样。

No component factory found for undefined. Did you add it to @NgModule.entryComponents?
    at…, …}

我还确保该组件位于模块中。

import { Component, OnInit, Input } from '@angular/core';
import { ChannelTableModeService } from '../../../../../../services/channel-table-mode.service';
import { ViewCell } from 'ng2-smart-table';

@Component({
  selector: 'app-channel-attribute-renderer',
  template: '{{renderValue}} --'
})
export class ChannelAttributeRendererComponent implements OnInit {

constructor() { }
  renderValue: string;
  @Input() value: string | number;
  @Input() rowData: any;
  ngOnInit() {
     this.renderValue =  '<' + this.value + '>';
  }

}

所以有人都看到了这个问题。他为什么认为组件未定义。

我的智能表的配置形式如下:

    @NgModule({
      imports: [
        Ng2SmartTableModule,
        CommonModule,
        ChannelProfileRoutingModule,    
        VeexCommonModule,
        TranslateModule,
        FormsModule
      ],
      entryComponents: [ChannelAttributeRendererComponent, PasswordRenderComponent],
      providers: [ChannelTableModeService],
      declarations: [ PasswordRenderComponent, ChannelProfileComponent, ChannelTableComponent, ServiceTypeComponent, ServiceGroupComponent, ChannelPlanEditorComponent, ChannelAttributeRendererComponent]
    })

export class ChannelProfileModule { }

2 个答案:

答案 0 :(得分:2)

尝试从github获取ng2-smart-table的分发代码,并替换node_modules目录中现有的ng-smart-table代码。

我也遇到了类似的问题,我通过将ng-smart-table模块替换为分发

来修复它

答案 1 :(得分:2)

具有相同的“找不到未定义的组件工厂。是否将其添加到@ NgModule.entryComponents?” 我通过在列定义中将“ renderComponent”更改为“ component”来修复它。

我通过查看开发工具中的错误发现了这一点,它尝试从“ .component”中获取渲染组件,如果您使用renderComponent,则该组件是未定义的