Angular 是一个用html 和typescript 构建
客户端应用的平台与框架
。
它将核心功能和可选功能作为一组TypeScript 库进行实现,你可以把它们导入到你的应用中。
NgModule
, 它为组件提供了编译的上下文环境。根模块(root module)
, 根模块通常命名为AppModule
,并位于一个名叫 app.module.ts 的文件中。还会有很多特性模块(feature module)
@NgModule()
装饰器是一个函数,参数是一个元数据对象,元数据对象的属性用于描述这个模块。其中最重要的属性如下:declarations
(可声明对象表) ——属于本 NgModule 的组件、指令、管道。exports
(导出表) —— 用于其它模块的组件模板中使用的声明对象的子集(the subset of declarations)。imports
(导入表) —— 其他模块,本NgModule声明的组件需要使用它们的导出类。providers
—— 本模块向全局服务中贡献的那些服务的创建器。 这些服务能被本应用中的任何部分使用。(你也可以在组件级别指定服务提供商,这通常是首选方式。)bootstrap
—— 应用的主视图,称为根组件。它是应用中所有其它视图的宿主。只有根模块才应该设置这个 bootstrap
属性。@NgModule
的参数是一个元数据对象,用于描述如何编译组件的模板,以及如何在运行时创建注入器。 它会标出该模块自己的组件、指令和管道(declarations),通过 exports
属性公开其中的一部分,以便外部组件使用它们。NgModule
还能把一些服务提供商添加到应用的依赖注入器中(provider)。NgModule | Import it from | Why you use it |
---|---|---|
BrowserModule | @angular/platform-browser | 当你想要在浏览器中运行app 时 |
CommonModule | @angular/common | 当你想要使用NgIf 和NgFor时 |
FormsModule | @angular/forms | 当要构建模板驱动表单时 |
ReactiveFormsModule | @angular/forms | 当要构建响应式表单时 |
RouterModule | @angular/router | 当要使用路由功能,并且你要用到RouterLink, forRoot() 和.forChild()时 |
HttpClientModule | @angular/common/http | 当要和服务器对话时 |