错误:路线'{path:“teams /”,redirectTo:“all”}'的配置无效:请提供'pathMatch'。 'pathMatch'的默认值是'prefix',但通常意图使用'full'。
这是错误按摩。这是我在app.module.ts上的语法:
const routes = [
{ path: 'teams', component: TabsComponent, children: [
{ path: '', redirectTo: 'all', pathMacth: 'full' },
{ path: ':side', component: ListComponent }
] },
{ path: 'new-team', component: CreateTeamComponent },
{ path: '**', redirectTo: '/teams' }
];
为什么我仍然有错误?
答案 0 :(得分:2)
重定向路由需要pathMatch
属性来告诉路由器如何将URL与路由路径匹配。如果你没有,路由器会抛出错误。
答案 1 :(得分:1)
请尝试以下代码:
const routes = [
{
path: 'teams', component: TabsComponent, children: [
{ path: '', redirectTo: 'all', pathMatch: 'full' },
{ path: ':side', component: ListComponent }
]
},
{ path: 'new-team', component: CreateTeamComponent },
{ path: '**', redirectTo: '/teams' }
];
你有一个拼写错误,你正在写 pathMacth 而不是 pathMatch
答案 2 :(得分:0)
默认情况下,Angular通过前缀匹配路径。这意味着,以下路由将同时匹配/ recipes和/
{ path: '', redirectTo: '/somewhere-else' }
实际上,Angular在这里会给您一个错误,因为这是一个常见的陷阱:此路由现在将始终将您重定向!为什么?
由于默认的匹配策略是“ prefix”,因此Angular会检查您在URL中输入的路径是否确实以该路线中指定的路径开头。当然,每个路径都以''开头(重要:这不是空格,只是“无”)。
要解决此问题,您需要将匹配策略更改为“ full”:
{ path: '', redirectTo: '/somewhere-else', pathMatch: 'full' }
现在,仅当完整路径为”时,您才被重定向(因此,在此示例中,仅当路径中没有其他内容时)。