我无法弄清楚为什么会这样。从我所看到的,我正在正确导入所有内容。我已经回答了其他问题并多次看过这个问题。我可能错过了一些非常简单而且没有看到的东西。我可以获得一些帮助,说明为什么我会收到此错误吗?
app.module.ts
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:我没有从项目开始创建这个,这就是为什么我可能会遗漏一些东西。
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>
答案 0 :(得分:5)
你应该告诉angular你将使用来自RouterModule
的指令。
也就是说,您应该在RouterModule
中导入AppModule
或从RouterModule
导出AppRoutingModule
。第二个选项更可取,因为您将所有与路由内容相关的内容保存在一个位置。
@NgModule({
imports: [
CommonModule,
RouterModule.forRoot(routes)
],
exports: [RouterModule] <==== add this
})
export class AppRoutingModule {}
答案 1 :(得分:1)
您必须导出路由器模块,以便app.module.ts
可以从app.routing.ts
模块访问导入的模块。
@NgModule({
imports: [
CommonModule,
RouterModule.forRoot(routes)
],
declarations: [],
exports: [RouterModule]
})
在官方documentation中有人说:
最后,重新导出 Angular RouterModule,方法是将其添加到模块中 导出数组。通过 重新导出 这里的RouterModule并导入 AppModule中的AppRoutingModule,AppModule中声明的组件 将有权访问路由器指令,如RouterLink和 RouterOutlet。