已导入RouterModule仍报错无法绑定routerLink属性的原因是什么
问题原因解答
- Angular 应用有严格的模块依赖树规则,只有被根模块(AppModule)直接或间接导入的模块,才会被编译器纳入编译范围,模块内部的导入、声明配置才会生效。
- 你虽然在
MyModule中已经导入了RouterModule,也在MyModule中声明了使用routerLink的SelectorComponent,但只要MyModule没有被加入应用的模块依赖树,MyModule的所有配置都不会被编译器识别。此时SelectorComponent被渲染时,编译器找不到同模块导入的RouterModule提供的routerLink指令,就会抛出对应的绑定错误。 - 当你把
MyModule导入AppModule后,MyModule正式被纳入应用的模块依赖树,RouterModule暴露的routerLink指令就会对同模块声明的组件生效,报错自然消失。
内容的提问来源于stack exchange,提问作者Antonio Santoro
相关产品推荐
相关产品推荐

