首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模板分析错误:“router-outlet”不是已知元素

模板分析错误:“router-outlet”不是已知元素
EN

Stack Overflow用户
提问于 2018-03-23 03:53:42
回答 2查看 9.9K关注 0票数 1

我不知道为什么会发生这样的事情。根据我所看到的,我正确地导入了所有内容。我已经问过其他问题了,并且已经看过很多次了。我可能遗漏了一些非常简单的东西,只是没有看到而已。我能得到一些关于为什么我得到这个错误的帮助吗?

app.module.ts

代码语言:javascript
复制
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
import { MaterialModule } from './material.module';

import { AppComponent } from './app.component';
import { AppRoutingModule } from './app-routing.module';
import { DashboardComponent } from '../dashboard/dashboard.component';


@NgModule({
  declarations: [
    AppComponent,
    DashboardComponent
  ],
  imports: [
    BrowserModule,
    BrowserAnimationsModule,
    MaterialModule,
    AppRoutingModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

app-routing.module.ts:我从项目一开始就没有创建它,这就是为什么我可能遗漏了一些东西。

代码语言:javascript
复制
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import { RouterModule, Routes } from '@angular/router';

import { DashboardComponent } from '../dashboard/dashboard.component';

const routes: Routes = [
  { path: '', component: DashboardComponent }
];

@NgModule({
  imports: [
    CommonModule,
    RouterModule.forRoot(routes)
  ],
  declarations: []
})
export class AppRoutingModule {

}

我已经在app.component.html中放置了<router-outlet></router-outlet>

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-03-23 04:02:16

你应该告诉angular你将使用来自RouterModule的指令。也就是说,您应该在AppModule中导入RouterModule,或者从AppRoutingModule中导出RouterModule。第二个选项更可取,因为您将所有与路由相关的内容放在一个位置。

代码语言:javascript
复制
@NgModule({
  imports: [
    CommonModule,
    RouterModule.forRoot(routes)
  ],
  exports: [RouterModule]   <==== add this
})
export class AppRoutingModule {}
票数 7
EN

Stack Overflow用户

发布于 2018-03-23 04:02:35

您必须导出路由器模块,以便您的app.module.ts可以从app.routing.ts模块访问导入的模块。

代码语言:javascript
复制
@NgModule({
  imports: [
    CommonModule,
    RouterModule.forRoot(routes)
  ],
  declarations: [],
  exports: [RouterModule]
})

在官方documentation中是这样说的:

最后,通过将Angular 添加到模块导出数组来重新导出RouterModule。通过在此处重新导出RouterModule并在AppModule中导入AppRoutingModule,在AppModule中声明的组件将可以访问路由器指令,如RouterLink和RouterOutlet。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49437328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档