我正在使用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,我觉得我做错了什么......有没有更好的方法来导入所有模块?我构建应用程序的方法是错误的吗?
答案 0 :(得分:6)
您可以创建"共享"导出所需的每个Material Design模块的模块。然后你可以简单地导入"共享"将模块放入需要它们的其他模块中。
以下是一个例子:
在这张图片中,我有一个导出CommonModule和FormsModule的共享模块。然后,ProductModule导入SharedModule以获取CommonModule和FormsModule提供的所有功能。
我在这里有关于此的YouTube视频:https://www.youtube.com/watch?v=ntJ-P-Cvo7o