在Angular中导入很多模块

时间:2017-08-21 19:39:26

标签: angular typescript import material-design

我正在使用Angular 4和Angular Material构建应用程序,每个Material指令都要求我单独导入其模块。

例如,我正在构建导航栏,这就是nav.module.ts开始的样子:

import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {NavComponent} from './nav.component';
import { AngularFontAwesomeModule } from 'angular-font-awesome/angular-font-awesome';
import { MdInputModule } from '@angular/material';
import { MdMenuModule } from '@angular/material';
import {MdButtonModule} from '@angular/material';
import { FlexLayoutModule } from '@angular/flex-layout';
import {HttpClientModule, HttpClient} from '@angular/common/http';
import {TranslateModule, TranslateLoader} from '@ngx-translate/core';
import {TranslateHttpLoader} from '@ngx-translate/http-loader';

@NgModule({
imports: [
    CommonModule,
    AngularFontAwesomeModule,
    MdInputModule,
    MdMenuModule,
    MdButtonModule,
    FlexLayoutModule,
    HttpClientModule,

    ....

现在只有3个Material模块,我需要稍后添加,除了Material,还有其他需要导入的模块......

刚开始从AngularJS迁移到Angular4,我觉得我做错了什么......有没有更好的方法来导入所有模块?我构建应用程序的方法是错误的吗?

1 个答案:

答案 0 :(得分:6)

您可以创建"共享"导出所需的每个Material Design模块的模块。然后你可以简单地导入"共享"将模块放入需要它们的其他模块中。

以下是一个例子:

enter image description here

在这张图片中,我有一个导出CommonModule和FormsModule的共享模块。然后,ProductModule导入SharedModule以获取CommonModule和FormsModule提供的所有功能。

我在这里有关于此的YouTube视频:https://www.youtube.com/watch?v=ntJ-P-Cvo7o