只有通过路由器模块中的共享模块导入时才可用的角材料

问题描述 投票:0回答:1

按照Angular准则,我试图创建一个包含几个功能模块的示例项目。

为了在每个模块中使用Angular Material,我创建了一个共享模块,用于导入和导出这些Material模块。只要需要角材料,就会导入此共享模块。

根据指南,每个功能模块都应该具有自己的路由器模块,因此我为每个功能都创建了一个。

我只希望将与路由相关的项目保留在路由模块中,从而将共享模块导入功能模块中,而令我惊讶的是,该模块不起作用,即材料指令不起作用。

//Feature Module
@NgModule({
    imports: [..., SharedModule], //SharedModule import doesn't make material available
    declarations: []
})

一旦将此共享模块导入路由器模块,材料组件便开始工作。

//Feature Router Module
@NgModule({
    imports: [..., SharedModule], //SharedModule makes material available
    declarations: []
})

如何通过将共享模块导入功能模块使其工作?

演示在https://stackblitz.com/edit/angular-segregated-modules?embed=1&file=src/app/Modules/Sub/sub.module.ts

angular angular-material angular-routing angular-module
1个回答
0
投票

[查看您链接的StackBlitz,SubComponentSubRoutesModule中声明。该组件只能访问其声明所在模块的导入,这说明了您描述的问题。

如何通过将共享模块导入功能模块使其工作?

SubComponent的声明中删除SubRoutesModule并将其添加到SubModule的声明中。

© www.soinside.com 2019 - 2024. All rights reserved.