2016-09-25 3 views
2

Я пытаюсь сделать социально учебник от метеора сети, но расслоения плотного я застрял на шаге 5 Routing & Несколько видов Когда я щелкаю по ссылке чтобы увидеть «детали вечеринки», консоль 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 на самом деле является объектом, а не идентификатор примитива. Если бы мне пришлось вложить свои деньги на это, я бы сказал, что это его, что это выглядит как

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

При добавлении объекта в routerLink массив, он становится matrix parameter для предыдущего сегмента пути. Так что, если выше является фактической структурой, то приведет к

/party;_str=57df4efc74ee85f397a687f3 

, который является проблемой вы столкнулись. Если вы хотите просто добавить значение идентификатора пути, то вы должны извлечь _str

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

Это даст вам маршрут

/party/57df4efc74ee85f397a687f3 

который, что вы хотите.

Смотрите также:

+1

Чувак спасибо большое, я пытался все в течение нескольких часов (ну, не все) Спасибо! –

+0

Серьезно. Я думал, что сойду с ума. Я дважды прошел пятый шаг в учебнике, чтобы убедиться, что все мои коды верны. Благодаря! –

Смежные вопросы