Как я могу настроить маршрутизатор Angular2 для перенаправления меня на маршрут по умолчанию (или любой другой), если я перехожу на несуществующий маршрут?
Запасной маршрут Angular2
Ответы (3)
Я нашел это решение
{ component: HomeComponent, path: "", pathMatch: "full" },
{ component: LoginComponent, path: "/login" },
{ component: NotFoundComponent, path: "**" }
person
Vlado Tesanovic
schedule
04.01.2016
Спасибо за предоставленную информацию, я создал подпредставления с помощью @routerconfig() в дочерних компонентах и смог перемещаться с помощью routerLink. Например, Parent: `#/sales` и Childs:
#sales/asia
& #sales/eu
при переходе по ссылкам; дочерние представления отлично работают. Но я не смог загрузить #sales/asia
изначально, я использовал параметр маршрутизатора по умолчанию, но он не работает. Как я могу загрузить #/sales/asia
изначально при загрузке представления #sales
? Заранее спасибо.
- person Nithin CV; 11.04.2016
Информацию о перенаправлении маршрута по умолчанию (/
) см. в Route
документации по API< /а>. Просто установите для параметра useAsDefault
маршрута по умолчанию значение true
.
Например, если у вас есть маршрут, определенный как:
@RouteConfig([ {path: '/home', component: HomeCmp, name: 'Home', useAsDefault: true} ])
маршрут /
будет перенаправлен на /home
Как упоминалось в OP в его ответе, чтобы перенаправить все неопределенные маршруты на определенный маршрут, используйте
@RouteConfig([ /*...,*/ {path: '/**', redirectTo: ['Home']} ])
person
Ionut Costica
schedule
04.01.2016
Да. Я постараюсь выложить рабочий пример plunkr, как только доберусь до компьютера. Если у вас возникли проблемы, возможно, сервер не настроен на маршрутизацию неизвестных маршрутов к вашему файлу
index.html
. Попробуйте использовать HashLocationStrategy
или посмотрите, как настроить ваш сервер/сервер разработки для маршрутизации неизвестных маршрутов к вашему основному html-файлу. (хотя это должно появляться только тогда, когда вы указываете путь непосредственно в адресной строке или обновляете страницу). Попробуйте установить routerLink
на неизвестный маршрут при использовании useAsDefault
, и он должен перенаправить правильно.
- person Ionut Costica; 04.01.2016
Вы правы,
useAsDefault
работает только для перенаправления /
на маршрут по умолчанию. Отредактировал мой ответ, чтобы отразить это
- person Ionut Costica; 04.01.2016
Маршрутизатор изменен на новую версию, и теперь резервные маршруты используются таким образом. см. :маршрут Angular 2
{ path: '', redirectTo: '/member/dashboard', terminal: true },
{
path: 'member',
component: MemberMainComponent,
canActivate: [AuthGuard],
children: [
{
path: 'dashboard',
component: DashboardComponent
}
]
},
{ path: '**', component: DashboardComponent }
person
Veerendra Borra
schedule
04.08.2016