我正在使用Angular 6
开发应用程序,并且需要处理我的应用程序中的未知路由。
例如:
Instagram有一个默认页面(instagram.com),但是如果您编写(instagram.com/user),他们会将您重定向到用户个人资料,因此我需要在{{ 1}}应用程序。
跟随我的路线:
Angular
默认情况下,我的应用程序重定向到const APP_ROUTES: Routes = [
{
path: '',
redirectTo: 'home',
pathMatch: "full"
},
{
path: 'home',
component: HomeComponent
},
{
path: "login",
component: LoginComponent
},
{
path: "in-development",
component: InDevelopmentComponent
},
{
path: "**",
component: DefaultPageComponent
}
];
export const routing: ModuleWithProviders = RouterModule.forRoot(APP_ROUTES, { useHash: true });
,但是我想重定向到/home
,如果我键入:DefaultPageComponent
并获得整个localhost:4200/pedro
(包括{ {1}}。
感谢所有帮助!
答案 0 :(得分:1)
您必须在带通配符(**)的前面加上一个带参数的路由。这样的事情应该起作用:
const APP_ROUTES: Routes = [
{
path: '',
redirectTo: 'home',
pathMatch: "full"
},
{
path: 'home',
component: HomeComponent
},
{
path: "login",
component: LoginComponent
},
{
path: "in-development",
component: InDevelopmentComponent
},
{ path: ':userName', component: UserPage },
{
path: "**",
component: DefaultPageComponent
}
];
export const routing: ModuleWithProviders = RouterModule.forRoot(APP_ROUTES);
顺序很重要:始终先放置更具体的路线(否则您将无法到达它们)。
我还建议您像这样对用户路由命名空间:
{ path: 'users/:userName', component: UserPage },
答案 1 :(得分:-1)
这对我有用
{
path: '**',
loadChildren: () => import('./path/to/your/component.module').then(m => m. DefaultPageComponentModule),
}