使用组件而不导入

时间:2017-02-28 07:34:42

标签: angular typescript ionic2

您好我想知道如果已经在AppModule中声明它是否可以使用组件而不再重新导入它。由于我有 10个或更多页面/组件要使用,因此很难导入每个页面/组件并进行跟踪。

这是我的 app.module.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 {}

我想使用 HomePage 而不重新导入它。因为我有这么多页面来处理它。

其他-page.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.
}

2 个答案:

答案 0 :(得分:3)

如果你在代码的某个地方提到一个类,它必须被导入,否则它不会被识别为使代码无效或至少不能达到预期效果的类。

文件顶部的导入根本与Angular无关,它们是TypeScript导入。 @NgModule()中的导入是Angular导入和fullfill与TS导入完全不同的目的。

因此,向@NgModule()添加组件不会使其他导入过时。

答案 1 :(得分:2)

要在源代码(ts文件)中使用Comonent,您需要import它,以便TypeScript识别它。
如果您只想在Template中使用它,则只需要Angular框架识别它,并且不需要导入。

要让Angular了解您的Component,您需要declare NgModule。此Component中的每个NgModule都会知道您的Component 要让其他NgModule知道您的Component,您需要export来自另一个NgModuleimport NgModule NgModule {1}}秒。