>我在路由器中有以下内容
const routes: Routes = [
{
path: "",
component: demo1Component,
canActivate: [AuthGuard]
},
{
path: "demo2",
component: demo2Component,
children: [
{
path: ':id', component: demo2Component}
],
canActivate: [AuthGuard]
},
{
path: "demo3",
component: demo3Component
,canActivate: [AuthGuard],
},
];
我想重定向任何类似的东西
demo2/1/url/hi
demo2/100/temp/h2
demo2/2300/hello/demo
到相同的演示2组件。我怎样才能实现这一目标,而不是明确地编写所有内容?
从 禅
我建议您使用角度路由器中的matcher
函数。 您可以在routing.module
中执行以下操作:
matcher: (segments) => {
if (Array.isArray(segments)) {
const posParams = segments.reduce((prev, current, index) => {
prev['cat' + index] = current;
return prev;
}, {});
return {
consumed: segments,
posParams
};
}
return null;
}
使用上面的代码,您将在一个数组中收集 url 中的所有段。您可以继续在解析器中处理这些信息,并对其进行操作。