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])"