【问题标题】:Multiple (n times) repeating route parameters多个(n 次)重复路由参数
【发布时间】:2019-12-07 15:32:13
【问题描述】:

如果你想让同一个参数重复n次,你如何定义一个带有路由参数的路由。

例如

  { 
    path: '/route/:id1/:id2/:id3/:id4', // etc.
    component: SomeComponent
  }

是否可以简化允许n个ID的方式。

【问题讨论】:

  • 嗯,它基本上是一个字符串,所以你总是可以运行一个循环来创建它,但我对这种路由的用例更好奇。
  • 你可以使用类似[...new Array(4).keys()].map( i => ":id" + (i+1)).join("/")
  • @AnuragSrivastava 用例是可视化中多个对象的比较。用户可以显示单个对象的数据或比较多达几十个对象。
  • @Aaron 谢谢你的想法,但我需要提前知道数组的长度。我正在寻找一种使参数数量可变的方法。
  • 你说的是哪个数组,你需要知道它的长度?在我的代码中,只需将 4 替换为任意数字,这就是您可变数量的参数。如果您有一个可变长度的输入数组,请使用它而不是new Array(n)。以防万一这是一个示例:ideone.com/TGCuyf

标签: arrays angular angular-router url-parameters


【解决方案1】:

我通过使用this.route.url 的段来解决它,如下面的组件代码:

路线定义:

export const Routes: Routes = [{
  path: '',
  children: [{
    path: '**',
    component: Component
  }]
}];

组件:

@Component()
export class Component {

  constructor(private route: ActivatedRoute) {

    this.route.url.subscribe((segments: UrlSegment[]) => {
      segments.forEach(segment => {
        console.log(segment); // each segment resembles one parameter like in my question
      })
    });

  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 2020-05-31
    • 1970-01-01
    • 2020-08-17
    • 2015-09-22
    • 2016-04-19
    • 2016-04-01
    相关资源
    最近更新 更多