Как использовать полностью переменный URL в параметре routerLink - PullRequest
0 голосов
/ 25 апреля 2018

Позвольте, у меня есть URL, как показано ниже (на самом деле я получаю его методом get) -

/glaccounts/pending_tasks?taskId=2&taskCommand="CreateGeneralLedgerAccount"

этот URL находится на объекте какthis- {activity:"work", taskUI="/glaccounts/pending_tasks?taskId=2&taskCommand="CreateGeneralLedgerAccount"}

Теперь, как использовать это в routerLink?Код ниже не работает -

<ul class="weekly-weather">
    <li *ngFor="let task of pendingTasks">
       <a [routerLink]="task.taskUI" [queryParams]="{taskId: '2', taskCommand: 'CreateGeneralLedgerAccount'}">
           {{task.activity}}
       </a>
       <i class="material-icons">call_missed_outgoing</i>
    </li>
</ul>

(Примечание: здесь я получаю массив объектов в pendingTasks)

Я также попытался

  • [routerLink]=[task.taskUI]
  • [routerLink]=[{{task.taskUI}}]
  • [routerLink]="{{task.taskUI}}"
  • [routerLink]={{task.taskUI}}

Последние три ошибки броска очевидно,: P

1 Ответ

0 голосов
/ 25 апреля 2018

routerLink принимает массив строк или строк.

Создайте функцию, которая создает массив строк, а затем используйте ее

toLink(url: string)  {
  const arr = url.split('/');
  if (arr[arr.length - 1] === '') { arr.pop(); } // remove the last empty item
  if (arr[0] === '') { arr.shift(); } // remove the first empty item
  return arr;
}



<a [routerLink]="toLink(task.taskUI)">

Также помните, это будет работать, если вы хотите перейти в дерево URL. Это означает, что этот маршрут должен быть дочерним по отношению к маршруту, на котором вы находитесь.

...