Angular 4 未加载组件

Fal*_*rri 2 angular angular4-router

我正在尝试在 Angular 4 应用程序中使用 Angular Routes,但该应用程序无法加载与请求的路由匹配的组件:

这是app-routing.module.ts

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';
import { DashboardComponent } from './dashboard/dashboard.component';

const routes: Routes = [
  { path: 'dashboard', component: DashboardComponent },
  { path: '', redirectTo: '/dashboard', pathMatch: 'full' },
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule { }
Run Code Online (Sandbox Code Playgroud)

app.module.ts 看起来像这样:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

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

@NgModule({
  declarations: [
    AppComponent,
    DashboardComponent,
  ],
  imports: [
    BrowserModule,
    AppRoutingModule,
  ],
  providers: [ ],
  bootstrap: [ AppComponent ]
})
export class AppModule { }
Run Code Online (Sandbox Code Playgroud)

app.component.html:

<h1>
    Welcome to {{title}}!
</h1>
<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

我的dashboard.component.html

<p>dashboard works!</p>
Run Code Online (Sandbox Code Playgroud)

我试图弄清楚出了什么问题,还查看了 Angular 4 Routing教程。请帮忙。

Fal*_*rri 5

经过一些故障排除后,我找到了解决方案,并在此链接上找到了答案。基本上,在 中app.module.ts,我们只需要添加这个 import 语句来导入APP_BASE_HREF令牌:

import { APP_BASE_HREF } from '@angular/common';
Run Code Online (Sandbox Code Playgroud)

并添加APP_BASE_HREFproviders数组:

providers: [ {provide: APP_BASE_HREF, useValue: '/' }],
Run Code Online (Sandbox Code Playgroud)

根据 Angular文档的另一个解决方案是简单地添加<base href="/"><head>标签的第一个孩子。