将组件放置在声明数组以及entryComponents数组中

run*_*ero 5 ionic2 angular

当我创建一个新的页面组件时,现在必须将其放置在声明以及entryComponents Array中。为什么必须同时在两个地方?

例如,我刚刚创建了一个新的login.page.ts文件,但是我必须在声明和entryComponents数组中都声明它(顺便说一句,它不是entryComponent)

app.module.ts

@NgModule({
  declarations: [
    MyApp,
    LoginPage
  ],
  imports: [
    IonicModule.forRoot(MyApp),
  ],
  bootstrap: [IonicApp],
  entryComponents: [
    MyApp,
    LoginPage
  ],
  providers: [{provide: ErrorHandler, useClass: IonicErrorHandler}]
})
export class AppModule {}
Run Code Online (Sandbox Code Playgroud)

ols*_*lsn 1

如果应用程序的其余部分配置正确,则实际上不需要放置entryComponent。

Angular 会自动将某些组件添加到入口组件中。中列出的组件@NgModule.bootstrap会自动添加。中引用的组件router configuration会自动添加。这两种机制几乎占据了所有的入口组件。

如果您的应用程序碰巧以某种其他方式按类型引导或动态加载组件,则必须将其显式添加到entryComponents。

尽管将组件添加到此列表中没有什么害处,但最好只添加真正的入门组件。不要包含在其他组件的模板中引用的组件。

来自: https: //angular.io/docs/ts/latest/cookbook/ngmodule-faq.html# !#q-when-entry-components