嗨,我想知道如果组件已经在 AppModule 中声明,是否可以在不再次导入组件的情况下使用它。由于我有10 个或更多页面/组件可以使用,因此很难导入每个页面/组件并进行跟踪。
这是我的应用程序.模块.ts
import { NgModule, ErrorHandler } from '@angular/core';
import { IonicApp, IonicModule, IonicErrorHandler } from 'ionic-angular';
import { MyApp } from './app.component';
@NgModule({
declarations: [
MyApp,
HomePage
],
imports: [
IonicModule.forRoot(MyApp)
],
bootstrap: [IonicApp],
entryComponents: [
MyApp,
HomePage
],
providers: [
{provide: ErrorHandler, useClass: IonicErrorHandler}
]
})
export class AppModule {}
我想使用主页而不重新导入它。因为我有很多页面要处理它。
其他页面.ts
import { Component } from '@angular/core';
@Component({
selector: 'page-home',
templateUrl: 'login.html',
providers: [LoginService]
})
export class LoginPage {
constructor(){ }
//Call HomePage here without having to import it again.
}
如果你在代码中的某处提到一个类,它必须被导入,否则它不会被识别为那个使代码无效或至少没有做你期望的类。
文件顶部的导入与 Angular 完全无关,它们是 TypeScript 导入。@NgModule()
中的导入是 Angular 导入,满足了与 TS 导入完全不同的目的。
因此,向@NgModule()
添加组件不会使其他导入过时。
要在源代码(ts-file)中使用Comonent
,您需要对其进行import
,以便TypeScript
识别它。
如果只想在Template
中使用它,则只需要Angular
框架识别,不需要导入。
要Angular
了解您的Component
,您需要将其declare
在NgModule
中。然后,该NgModule
内的每个Component
都会知道您的Component
。
要让其他NgModule
知道您的Component
,您需要从声明NgModule
中export
它,并import
在其他NgModule
中NgModule
。