如何重定向任何嵌套的URL相同角度的组件

问题描述 投票:0回答:1

我在路由器中有关注者

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

到相同的demo2Component。我该如何实现,而不是显式编写所有内容?

来自,禅

angular angular-ui-router
1个回答
0
投票

我建议您使用角度路由器的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中的所有段收集到一个数组中。您可以继续进行操作,并在解析器中处理这些信息,然后使用它进行所需的操作。

© www.soinside.com 2019 - 2024. All rights reserved.