如果类型未定义,则加载errorComponent

时间:2019-03-27 15:44:39

标签: angular

我正在根据其类型动态创建组件。

如果类型未定义,我想加载ErrorComponent

但是我遇到这样的错误

  

错误:未找到未定义的组件工厂。您是否将其添加到   @ NgModule.entryComponents?

下面是我的代码。

在content-components.module.ts

// useValue defines component type.
export const CONTENT_MAPPINGS_PROVIDER: Provider = [
  {
    provide: CONTENT_MAPPINGS,
    useValue: {
      'ITALIC': StyleComponent,
      'undefined': ErrorComponent
    }
  }
];

contentMapping.ts

export const CONTENT_MAPPINGS = new InjectionToken<any>(`CONTENT_MAPPINGS`);

在para.component.ts

  inlineComp.forEach(obj => {
    const type = this.contentMappings[obj.type]; // If type is undefined, it should pick up ErrorComponent but not picking
    this.renderEngineService.createComponent(obj, type);
  });

它是如何工作的,

  • 如果obj.typeITALIC,它将加载StyleComponent
  • 如果obj.typeTEXT,则由于CONTENT_MAPPINGS中未定义任何类型,因此应选择ErrorComponent

请帮助。

下面是我到我的项目的链接

https://stackblitz.com/edit/angular-gofkkt?file=src%2Fapp%2Fcontent-components%2Fparagraph%2Fparagraph.component.ts

0 个答案:

没有答案