在 Angular 项目里我们可以使用模块来组织应用的结构,可以按照应用的功能或者资源去创建一些不同的模块,每个模块里都可以包含一些相关的东西。比如组件、指令,服务等等。
Angular 项目里面至少需要一个模块,我们用 ng 命令创建的项目里面,会包含一个 AppModule, 这个模块是在 app.module.ts 文件里定义的。它是我们的应用的根模块,Angular 在创建应用的时候用到了这个模块。
下面我们可以再用命令去快速生成一个模块, 在项目所在目录的下面,执行 ng generate ,生成项目需要的一些东西可以使用这个命令,后面加上要生成的东西的名字,我需要一个 module,也就是模块, 接着跟着模块的名字,比如 post。
这样会创建一个叫 post 的模块,放在 post 目录的下面,如果想设置一下存储要创建的这个模块的位置,模块的名字就可以是一个具体的位置,比如 modules/post,这个命令的后面还可以跟着一些选项, 先使用默认的选项执行一下这个命令。
你会发现生成了一个模块文件,放在了 src,app, modules,post 目录的下面 。
回到项目,打开 app ... modules ,post 下面的这个 post.module.ts,在这个 ts 文件里定义了一个叫 PostModule 的模块 。
模块是一个类,这个类要用 @NgModule 装饰器装饰一下,这个装饰器来自 @angular/core 这个包。
在给这个装饰器提供的对象参数里面,可以配置一下这个模块。
在 declarations 里面,可以列出这个模块里包含的一些东西,比如组件,指令,管道之类的东西。
在模块里要使用其它模块提供的功能,需要把这些模块放在这个模块的 imports 里面,这里导入了一个叫 CommonModule 的模块,它来自 @angular/common。
在这个 CommonModule 模块里导出了一些 Angular 项目里常用的指令还有管道, 也就在我们这个 PostModule 的 imports 里,添加了这个 CommonModule 模块,就可以在 PostModule 模块里使用在 CommonModule 模块里导出的一些功能,就是一些常用的指令还有管道。
如果在这个 PostModule 里面还需要另外一些模块里导出的功能,我们需要把这些模块的名字添加到这里的这个 imports 里面。