7

我有一个超链接,我需要在 Angular 4 中创建一个路由器链接。我的 url 有很多部分,其中一部分是一个数组。我不确定如何使阵列将自身拆分为 routerlink 阵列的部分。

举这个人为的例子:

[routerLink]="['/customers', customerid, orderid, arrayofints, anotherint]"

我希望路由器看起来像这样 customerid = 10, order = 500, arrayofints = [1,2,3], anotherint = 888

"/customers/10/500/1/2/3/888"

我最终得到了这样的东西:

"/customers/10/500;0=1;1=2;2=3/888"
4

2 回答 2

9

对于任何重要的事情,我会在组件代码而不是模板中完成工作。所以在模板中:

[routerLink]="customerRouteFor(anotherint)"

在组件中,您可以使用以下...spread语法:

customerRouteFor(anotherint: number): (string | number)[] {
  return ['/customers', this.customerid, this.orderid, ...this.arrayofints, anotherint];
}

在我看来,这似乎比concat方法更干净。

于 2017-07-13T21:51:18.917 回答
3

展平参数将为您提供正确的 URL

[routerLink]="[].concat.apply([],['/customers', customerid, orderid, arrayofints, anotherint])"
于 2017-07-13T21:48:57.837 回答