我有以下通配符
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'.
。伙计们好吗?提前谢谢。
答案 0 :(得分:2)
如果用户输入任何无效路由,路由器如何知道您要导航的WHICH列表?
那:id
应该是0,33还是1337?路由器无法知道!
唯一可能的方法是定义没有参数的回退路由器或定义一个:
{
path: '**',
redirectTo: 'list/77', // put your fallback-id here !!
pathMatch: 'full'
}
最好是创建像404 error
这样的网站。显示page not found
之类的消息,并向用户提供一些导航选项..可能是所有列表或其他内容的概述..