Angular 里面有一种模块是路由模块,就是这种模块的主要作用就是去配置跟功能模块相关的路由。先删除掉之前创建的这个 user 模块。
在创建功能模块的时候可以在命令里面加上一个 --routing 选项,这样就可以自动创建一个对应的路由模块了。ng generate 生成一个 module ,名字是 user,后面加上一个 --routing 选项,执行一下这个命令。
回到项目,打开 src, app, user,你会发现,刚才执行的命令创建了两个模块,一个是 user 功能模块,还有一个对应的路由模块,一般路由模块跟功能模块在一块儿,模块里带着 routing 后缀,表示这是一个路由模块,注意这只是一个惯用的方法,路由模块的名字没有限制。
打开这个模块看一下,跟一般的模块没什么区别,定义的方法是一样的,只不过,在这个路由模块的 imports 里面,导入了 RouterModule ,用了一下这个 forChild 方法配置了一下路由。RouterModule 来自 @angular/router。在模块的 exports 里面,又导出了这个 RouterModule。
在模块里面的这个 routes 里面,可以配置一下相关的路由。
打开 UserModule,你会发现,在这个模块的 imports 里面,导入了这个 UserRoutingModule。
如果你是手工创建的路由模块,你需要在这个功能模块里,导入它,然后把它放在模块的 imports 里面。