如何在routerLink参数中使用完全可变的URL

时间:2018-04-25 06:46:23

标签: angular routerlink

让我有一个像下面这样的网址(我实际上是通过get方法得到它) -

Create Table merged ( Select [ABCD] from [Alphabet] join with [Numbers] from [Integers])

此网址位于对象之类,如此/glaccounts/pending_tasks?taskId=2&taskCommand="CreateGeneralLedgerAccount"

现在,如何在routerLink中使用它?以下代码无效 -

{activity:"work", taskUI="/glaccounts/pending_tasks?taskId=2&taskCommand="CreateGeneralLedgerAccount"}

(注意:这里,我在pendingTasks中获取了一组对象)

我也试过

  • <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>
  • [routerLink]=[task.taskUI]
  • [routerLink]=[{{task.taskUI}}]
  • [routerLink]="{{task.taskUI}}"

最后三次抛出错误显然。 :P

1 个答案:

答案 0 :(得分:0)

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树中找到它,这将有效。这意味着此路线必须是您所在路线的孩子。