模块

创建模块

  1. 在src/app中创建module文件夹,并在其中创建user模块

    创建user组件时,angular会自动创建一个user文件夹

  1. ng g module module/user


新增的模块包含以下文件:

  • user.module.ts
  1. import { NgModule } from '@angular/core';
  2. import { CommonModule } from '@angular/common';
  3. @NgModule({
  4. declarations: [],
  5. imports: [
  6. CommonModule
  7. ]
  8. })
  9. export class UserModule { }
  1. 在user模块中创建一个components文件夹,并在components文件夹中创建user模块下的组件profile
    1. ng g component module/user/components/profile


此时创建的profile组件会被自动引入user.module.ts,而没有引入到app.module.ts。

  1. 为user模块创建自己的根组件user
    1. ng g component module/user
  1. 为user模块创建服务common
    1. ng g service module/user/services/common


将创建好的common服务添加到user.module.ts的providers中

  1. import { NgModule } from '@angular/core';
  2. import { CommonModule } from '@angular/common';
  3. import { ProfileComponent } from './components/profile/profile.component';
  4. import { UserComponent } from './user.component';
  5. import { CommonService } from './services/common.service';
  6. @NgModule({
  7. declarations: [ProfileComponent, UserComponent],
  8. providers: [CommonService], // 将common服务添加到user模块中
  9. imports: [
  10. CommonModule
  11. ]
  12. })
  13. export class UserModule { }

挂载模块

将user模块挂载到根模块后,user组件中使用export暴露的组件便可以在根组件中直接使用

  1. 将user模块中的user组件暴露出去 ```typescript import { NgModule } from ‘@angular/core’; import { CommonModule } from ‘@angular/common’; import { ProfileComponent } from ‘./components/profile/profile.component’; import { UserComponent } from ‘./user.component’;

import { CommonService } from ‘./services/common.service’;

@NgModule({ declarations: [ProfileComponent,UserComponent], providers: [CommonService], exports: [UserComponent], // 将user模块的user组件暴露出去 imports: [ CommonModule ] }) export class UserModule { }

  1. 2.
  2. 在根模块app.module.ts中引入user模块
  3. ```typescript
  4. import { BrowserModule } from '@angular/platform-browser';
  5. import { NgModule } from '@angular/core';
  6. import { AppRoutingModule } from './app-routing.module';
  7. import { AppComponent } from './app.component';
  8. import { HomeComponent } from './components/home/home.component';
  9. import { NewsComponent } from './components/news/news.component';
  10. import { UserModule } from './module/user/user.module';
  11. @NgModule({
  12. declarations: [
  13. AppComponent,
  14. HomeComponent,
  15. NewsComponent
  16. ],
  17. imports: [
  18. BrowserModule,
  19. AppRoutingModule,
  20. UserModule // 引入user模块
  21. ],
  22. providers: [],
  23. bootstrap: [AppComponent]
  24. })
  25. export class AppModule { }
  1. 在app.module.ts的根模块下的app组件的app.component.html中直接使用user模块暴露的组件user ```html


```