RouterLink Array

У меня есть гиперссылка, необходимая для создания ссылки на маршрутизатор в 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"

2 ответа

Решение

Для чего-нибудь нетривиального, я бы сделал работу в коде компонента, а не в шаблоне. Итак, в шаблоне:

[routerLink]="customerRouteFor(anotherint)"

и в компоненте, где вы можете использовать ...spread синтаксис:

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

Это кажется чище, чем concat подход, на мой взгляд.

Сведение аргументов даст вам правильный URL

[routerLink]="[].concat.apply([],['/customers', customerid, orderid, arrayofints, anotherint])"
Другие вопросы по тегам