Angular wildcard redirectTo不工作

时间:2017-02-21 04:59:09

标签: angular

我有以下通配符

const routes: Routes = [
    {
        path: '',
        children: [
             {
                path: 'list/:id',
                component: ListComponent
            },
            {
                path: 'view/:id',
                component: ViewComponent
            },
            {
                path: 'edit/:id',
                component: EditComponent
            },
            {
                path: '**',
                redirectTo: 'list/:id',
                pathMatch: 'full'
            }

        ]
    }
];

:id是我需要从后端获取的id的占位符。通配符不起作用(不重定向列表组件),给我以下错误

EXCEPTION: Uncaught (in promise): Error: Cannot redirect to 'list/:id'. Cannot find ':id'.
Error: Cannot redirect to 'list/:id'. Cannot find ':id'.

。伙计们好吗?提前谢谢。

1 个答案:

答案 0 :(得分:2)

如果用户输入任何无效路由,路由器如何知道您要导航的WHICH列表?

:id应该是0,33还是1337?路由器无法知道!

唯一可能的方法是定义没有参数的回退路由器或定义一个:

{
    path: '**',
    redirectTo: 'list/77', // put your fallback-id here !!
    pathMatch: 'full'
}

最好是创建像404 error这样的网站。显示page not found之类的消息,并向用户提供一些导航选项..可能是所有列表或其他内容的概述..