Angular2 маршрутизация с одним параметром не работает

Моя простая маршрутизация не работает, и я не знаю, почему... Команда ниже сообщила загрузить PageNotFoundComponent вместо OffertDetailComponent

app.routing

{
    path: "OffertDetail/:idOffert",
    component: OffertDetailComponent
},
{
    path: '**',
    component: PageNotFoundComponent
}

команда маршрута

this.router.navigate(['OffertDetail', {idOffert: 1073}]);

Если я удаляю "/idOffert" из ap.Routing и параметр из команды, компонент загружается правильно.

Благодаря поддержке

1 ответ

Решение

Я полагаю, что вы смешиваете параметры запроса и параметры маршрута. Попробуйте изменить свой router.navigate к следующему, сохраняя путь как "OffertDetail/:idOffert":

this.router.navigate(['OffertDetail', '1073']);

Из https://angular.io/docs/ts/latest/guide/router.html

Чтобы установить параметры запроса:

// Set our navigation extras object
// that contains our global query params and fragment
let navigationExtras: NavigationExtras = {
  queryParams: { 'session_id': sessionId },
  fragment: 'anchor'
};

// Navigate to the login page with extras
this.router.navigate(['/login'], navigationExtras);

Чтобы использовать параметры маршрута:

this.router.navigate(['/hero', hero.id]);

И параметр получает имя :param из конфига роутера.

Чтобы передать два параметра маршрута, скажем, наш путь в нашей конфигурации маршрута path: "OffertDetail/:idOffert/detail/:someId"мы можем передать параметры этому:

this.router.navigate(['/OffertDetail', someParameter, 'detail', someOtherValue]);
Другие вопросы по тегам