You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular配置路由懒加载时报'router-outlet'不是已知元素错误

问题原因

router-outlet is not a known element 报错和你写的懒加载路由逻辑无关,核心原因是使用<router-outlet>标签的组件所属模块,没有正确导入包含RouterOutlet指令的RouterModule。
你当前的路由配置本身没有逻辑错误,按以下步骤排查模块导入问题即可修复:


修复步骤

1. 检查根模块AppModule配置

确认app.module.ts的imports数组中已经引入了AppRoutingModule。
AppRoutingModule中已经导出了RouterModule,只有在根模块导入它,根组件app.component.html里的<router-outlet>才能被Angular识别。
参考正确配置:

// app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';

@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    AppRoutingModule // 不可遗漏
  ],
  bootstrap: [AppComponent]
})
export class AppModule { }

2. 检查LandingModule配置

确认landing.module.ts的imports数组中已经引入了LandingRoutingModule。
LandingRoutingModule通过forChild注册子路由后也导出了RouterModule,只有导入该模块,landing.component.html中放置的<router-outlet>才能正常渲染子路由。
参考正确配置:

// landing.module.ts
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { LandingRoutingModule } from './landing-routing.module';
import { LandingComponent } from './landing.component';

@NgModule({
  declarations: [LandingComponent],
  imports: [
    CommonModule,
    LandingRoutingModule // 不可遗漏
  ]
})
export class LandingModule { }

3. 检查两个懒加载子模块配置

确认UserModule、AdminModule的imports数组中,都引入了各自对应的路由模块(如UserRoutingModule、AdminRoutingModule),且这两个路由模块都保持和LandingRoutingModule一致的写法:imports数组写RouterModule.forChild(路由配置),exports数组导出RouterModule,避免子模块内用到路由相关指令时报错。


额外注意
  • 所有模块类都要放在@NgModule的imports数组中,不要误放到declarations数组里,declarations只能用来声明当前模块拥有的组件、指令、管道。
  • 不要重复在多个模块中声明Router相关指令,只要导入对应模块导出的RouterModule即可使用所有路由指令。

内容的提问来源于stack exchange,提问作者SPARSH KUMAR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 02:45:49