2016-09-25 84 views
2

我試圖讓從流星JS網頁的社會教程,但我卡在第5步路由&多視圖 當我點擊鏈接看到「派對細節」的JavaScript控制檯說,路線不存在。 這是具有鏈接的視圖中的代碼。流星JS路由上的角2教程不起作用

<a [routerLink]="['/party', party._id]">{{party.name}}</a> 

這是從路由代碼:

const routes: RouterConfig = [ 
    { path: '', component: PartiesListComponent }, 
    { path: 'party/:partyId', component: PartyDetailsComponent } 
]; 

這是從控制檯輸出。

browser_adapter.js:84 EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: 'party;_str=57df4efc74ee85f397a687f3' 

回答

3

最可能的原因是,party._id實際上是一個對象,而不是ID原始。如果我不得不把我的錢,我會這樣說,它是什麼樣子

party: { 
    _id: { 
    _str: '57df4efc74ee85f397a687f3' 
    } 
} 

當您添加一個對象到routerLink陣列,它成爲前面路段上的matrix parameter。因此,如果上述實際的結構,那麼將導致

/party;_str=57df4efc74ee85f397a687f3 

這是你所面臨的問題。如果你只想id值添加到路徑,那麼你應該提取_str

<a [routerLink]="['/party', party._id._str]"> 

這會給你的路線

/party/57df4efc74ee85f397a687f3 

這是你想要的。

另請參見:

+1

老兄非常感謝你,我是想了好幾個小時的一切(當然,不是一切)謝謝! –

+0

認真。我以爲我瘋了。我在教程中經歷了第5步,以確保我所有的代碼都是正確的。謝謝! –