Angular组件无法识别所属模块的导入内容,报错找不到管道、指令等问题求助
Angular组件无法识别所属模块的导入内容,报错找不到管道、指令等问题求助
Disclaimer: I may be wrong about my understanding of this seeing as I have only been using Angular for little over a year (Angular 16.0.0).
Code
我有一个SidebarComponent组件:
@Component({ selector: 'app-sidebar', templateUrl: './sidebar.component.html', styleUrls: ['./sidebar.component.scss'] }) export class SidebarComponent implements OnInit { ... // Not very relevant to the issue }
这个SidebarComponent被声明在ShellModule模块中:
@NgModule({ declarations: [ ..., SidebarComponent, ... ], imports: [ CommonModule, RouterModule, ... // Other necessary modules that are used in the sidebar TranslatePipe, ], exports: [ ..., SidebarComponent, ... ], schemas: [CUSTOM_ELEMENTS_SCHEMA], }) export class ShellModule {}
Issue
我原本预期侧边栏组件可以访问声明它的模块中的导入内容,包括RouterModule和TranslatePipe导出的功能。
注意:我试过导入TranslateModule(.forChild())的方案,但没用。另外我在其他项目里只导入这个管道就能正常工作,完全没问题。
但实际出现了以下错误:
Error: src/app/components/shell/sidebar/sidebar.component.html:51:82 - error NG8004: No pipe found with name 'translate'. 51 {{'sidebar.' + sub_child.title | translate}} src/app/components/shell/sidebar/sidebar.component.ts:11:18 11 templateUrl: './sidebar.component.html', ~~~~~~~~~~~~~~~~~~~~~~~~~~ Error occurs in the template of component SidebarComponent. ---------------------------------- Error: src/app/components/shell/sidebar/sidebar.component.html:48:51 - error NG8002: Can't bind to 'routerLinkActiveOptions' since it isn't a known property of 'span'. 48 <span [routerLinkActiveOptions]="{exact: true}" class="sidemenu-link" src/app/components/shell/sidebar/sidebar.component.ts:11:18 11 templateUrl: './sidebar.component.html', ~~~~~~~~~~~~~~~~~~~~~~~~~~ Error occurs in the template of component SidebarComponent.
除此之外还有其他报错,比如关于mat-panel-title、mat-expansion-panel这类标签的问题——但我确定这些依赖的模块已经在ShellModule的导入里了。
我之所以怀疑是组件没意识到自己属于这个模块、无法访问模块导入内容,而不是路径或架构的问题,是因为我把这个组件改成独立组件(standalone)并直接导入管道后,居然就能正常工作了。
Conclusion
我想弄明白为什么这个组件(以及同一个模块里的其他很多组件,但不是全部)无法识别模块中导入的内容,就像从来没见过一样。另外,如果改成独立组件是更好的方案,也请告诉我原因,我还在学习阶段,想提升自己的Angular水平。
备注:内容来源于stack exchange,提问作者Wael Dghim
相关产品推荐
相关产品推荐

