应用都是模块化的,Angular有自己的模块系统。通常app.module.ts定义一个应用的根模块,一个应用应该至少有一个根模块(root module)。对于一个简单的应用来说,一个根模块足矣,但对于一个复杂的应用则可能需要添加特性模块,而且不止一个。
Angular模块是一个带有@NgModule装饰器函数的类。Angular有很多装饰器,这些装饰器将元数据附加到类上这样模块就会知道这些类的含义以及运作方式。
下面是@NgModule装饰器函数接收的元数据中重要的几个属性:
- declarations: 声明模块所拥有的视图类,Angular有三种视图类:component、directive和pipe。
- exports: declarations的子集。作用是导出类以便其他模块的组件模板使用。
- imports: 导入外部模块的类以便在此模块中声明的模板组件使用。
- providers: 服务提供商。模块会将这些服务加入全局服务集,这样在app的任何位置都可以使用加入的服务。
- bootstrap: 应用的主视图,包含app的其他视图。只有根模块可以设置这个属性。
下面是一个最简单基本的根模块:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ], //在这里加自己定义的组件、指令或管道
bootstrap: [ AppComponent ]
})
export class AppModule{}