📜  Angular 2-模块(1)

📅  最后修改于: 2023-12-03 15:13:23.049000             🧑  作者: Mango

Angular 2 模块

在 Angular 2 中,模块是一种组织代码的方式。模块将一些相关的组件、指令、管道等打包在一起,提供给应用程序使用。模块的作用类似于命名空间和模块化 JavaScript 中的模块。

创建模块

要创建一个模块,需要使用 @NgModule 装饰器来修饰一个类。@NgModule 的参数是一个元数据对象,用于描述模块的相关信息。

一个最基本的模块可以只包含一个 declarations 数组,其中列出模块中包含的组件、指令、管道等。例如:

import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [ AppComponent ]
})
export class AppModule { }

在上面的例子中,AppModule 是一个模块类。模块中只包含了一个 declarations 数组,其中列出了组件 AppComponent

导入模块

一个模块可以导入其他模块,以便使用其他模块中提供的组件、指令、服务等。要导入一个模块,需要在 @NgModuleimports 属性中列出需要导入的模块。例如:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [ AppComponent ],
  imports: [ BrowserModule ]
})
export class AppModule { }

在上面的例子中,AppModule 导入了 BrowserModule 模块,以便使用浏览器相关的功能。

导出模块

一个模块可以通过 exports 属性将模块中的组件、指令等导出给其他模块使用。例如:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { MyDirective } from './my.directive';

@NgModule({
  declarations: [ AppComponent, MyDirective ],
  imports: [ BrowserModule ],
  exports: [ AppComponent, MyDirective ]
})
export class MyModule { }

在上面的例子中,MyModule 导出了 AppComponentMyDirective,以便其他模块可以使用它们。

提供服务

一个模块可以通过 providers 属性提供服务。

import { NgModule } from '@angular/core';
import { HttpClientModule } from '@angular/common/http';
import { MyService } from './my.service';

@NgModule({
  imports: [ HttpClientModule ],
  providers: [ MyService ]
})
export class MyModule { }

在上面的例子中,MyModule 导入了 HttpClientModule 模块,并提供了一个名为 MyService 的服务。

总结

模块是 Angular 2 中组织代码的基本单位。模块可以导入其他模块,导出模块中的组件、指令等,提供服务等。创建一个模块需要使用 @NgModule 装饰器。