Angular嵌套路由配置后模板ngIf指令加载失败问题求助
解决Angular嵌套路由模板中
*ngIf无法识别的问题 这个报错的根源很清晰:*ngIf是Angular内置的结构型指令,它属于CommonModule,而你的GeneralModule没有导入这个模块,导致模板编译器找不到该指令的定义。
具体修复步骤:
- 打开你的
general.module.ts文件(它和general-routing.module.ts在同一目录下) - 从
@angular/common中导入CommonModule - 在模块的
imports数组里添加CommonModule
修改后的GeneralModule示例代码如下:
import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; // 导入CommonModule import { GeneralRoutingModule } from './general-routing.module'; import { GeneralComponent } from './general.component'; import { VendorBrowserComponent } from './vendor/browser/vendor-browser.component'; @NgModule({ declarations: [ GeneralComponent, VendorBrowserComponent ], imports: [ CommonModule, // 这里添加CommonModule GeneralRoutingModule ] }) export class GeneralModule { }
补充说明:
BrowserModule只需要在**根模块(AppModule)**中导入一次,它包含了CommonModule的所有功能,同时添加了浏览器特有的服务。- 所有子模块(比如你的CoreModule、GeneralModule)都应该通过导入
CommonModule来使用*ngIf、*ngFor、ngClass等内置指令和管道。
完成以上修改后,模板里的*ngIf就能被正确识别,报错会随之消失。
内容的提问来源于stack exchange,提问作者Sourabh Dev
相关产品推荐
相关产品推荐

