2016-12-20 184 views
0

我嘗試通過angular2 heroes-tour角2 pathMatch路由不起作用

我有問題與路由部分。

項目結構:

enter image description here

在教程中寫道,如果在模板中寫:

app.component.html:

<h1>{{title}}</h1> 
<nav> 
    <a routerLink="/dashboard">Dashboard</a> 
    <a routerLink="/heroes">Heroes</a> 
</nav> 
<router-outlet></router-outlet> 

和配置路由是這樣的:

app.module.ts:

import { NgModule }  from '@angular/core'; 
import { BrowserModule } from '@angular/platform-browser'; 
import { FormsModule } from '@angular/forms'; 
import { RouterModule } from '@angular/router'; 

import { AppComponent }  from './app.component'; 
import { HeroDetailComponent } from './hero-detail.component'; 
import { HeroesComponent }  from './heroes.component'; 
import { HeroService }   from './hero.service'; 
import {DashBoardComponent} from "./dashboard.component"; 

@NgModule({ 
    imports: [ 
     BrowserModule, 
     FormsModule, 
     RouterModule.forRoot([ 
      { 
       path: 'heroes', 
       component: HeroesComponent 
      }, { 
       path: 'dashboard', 
       component: DashBoardComponent, 
       pathMatch: 'full' 
      }, { 
       path: 'detail/:id', 
       component: HeroDetailComponent 
      }, 
     ]) 
    ], 
    declarations: [ 
     AppComponent, 
     HeroDetailComponent, 
     HeroesComponent, 
     DashBoardComponent 
    ], 
    providers: [ 
     HeroService 
    ], 
    bootstrap: [AppComponent] 
}) 
export class AppModule { 
} 

然後

要看到你的瀏覽器這些變化,轉到應用程序根目錄(/) 和重裝。該應用程序顯示儀表板,我們可以在儀表板和英雄之間導航 。

在我來說,我看到:

enter image description here

因此重定向到/信息中心並不需要刷新頁面後發生。

我該怎麼做?

P.S.
隨意問我添加更多的細節發佈。

+0

你檢查控制檯的任何錯誤?也許它找不到你的組件之一? –

+0

是否在app.module.ts中添加了RouterModule? –

+0

@Jaime Torres控制檯是空的。如果點擊鏈接 - 每個組件正常打開 – gstackoverflow

回答

2

請記住,瀏覽器在http://localhost:3000 URL啓動,當你做npm start不任何URL匹配到你的路線配置,所以你需要重定向規則如下里面添加RouterModule.forRoot,因此該應用顯示了dashboard在啓動時,你可以看到一個漂亮的URL在瀏覽器地址欄,上面寫着/dashboard

{ 
    path: '', 
    redirectTo: '/dashboard', 
    pathMatch: 'full' 
}