pathMatch路由错误

时间:2017-12-10 12:37:53

标签: angular angular-router

错误:路线'{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' }

];

为什么我仍然有错误?

3 个答案:

答案 0 :(得分:2)

重定向路由需要pathMatch属性来告诉路由器如何将URL与路由路径匹配。如果你没有,路由器会抛出错误。

从角度sysutils/immortal

答案 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' }

现在,仅当完整路径为”时,您才被重定向(因此,在此示例中,仅当路径中没有其他内容时)。