【问题标题】:Error : No Component Factory Found. Did you add it to @NgModule.entryComponents?错误:未找到组件工厂。你把它添加到@NgModule.entryComponents 了吗?
【发布时间】:2018-05-06 15:15:40
【问题描述】:

我正在尝试在我的主页上创建一个弹出框。所以我创建了以下功能..

public presentPopover(myEvent) {
    let popover = this.popoverCtrl.create(TestComponent);
    popover.present({
      ev: myEvent
    });
  }

在我的 homepage.module.ts 中,我添加了 testComponent 作为入口组件。

import { TestModule } from './../../components/test/test.module';
import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home';
import { TestComponent } from './../../components/test/test';

@NgModule({
  declarations: [
    HomePage,
  ],
  imports: [
    TestModule,
    IonicPageModule.forChild(HomePage),
  ],
  entryComponents: [
    TestComponent,
  ]
})

但是当我点击那个弹出按钮时我仍然收到这个错误。

ERROR Error: Uncaught (in promise): Error: No component factory found for TestComponent. Did you add it to @NgModule.entryComponents?
Error: No component factory found for TestComponent. Did you add it to @NgModule.entryComponents?
    at noComponentFactoryError (core.js:3786)
    at CodegenComponentFactoryResolver.resolveComponentFactory (core.js:3850)
    at PopoverCmp._load (popover-component.js:41)
    at PopoverCmp.ionViewPreLoad (popover-component.js:33)

我很困惑,为什么要将此添加到条目组件中?

【问题讨论】:

  • 要解决您的问题,您还需要将 TestComponent 添加到声明中。关于为什么要加入entryComponent,通过这个urlangular.io/guide/ngmodule-faq#q-entry-component-defined
  • @SrinivasValekar 如果我将此添加到声明中,我会收到一条错误消息,提示您已在测试模块和主模块中的两个地方定义了测试组件
  • 然后在您的TestModule 中添加entryComponentdeclaration。从 homepage.module.ts 中删除 entryComponent

标签: angular ionic3 uipopovercontroller ng-modules


【解决方案1】:

您需要将动态创建的组件添加到 @NgModule 中的入口组件

@NgModule({
  ...
  declarations: [
    ...
    Name of your component,
  ],
  entryComponents: [
    ...
    Name of your component,    
  ]
})

注意:在某些情况下,延迟加载的模块下的入口组件将不起作用,作为一种解决方法,将它们放在您的 app.module (root) 中

【讨论】:

  • 我运行了代码 sn-p。我收到“未捕获的语法错误:无效或意外的令牌”
  • 这对我有用,但是我只在生产环境中遇到了问题。在我的电脑上一切正常。我不知道为什么!
猜你喜欢
  • 2018-01-06
  • 2017-09-25
  • 2019-11-05
  • 2019-12-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多