1

我的 Angular 应用程序模板中有以下代码,但无法按预期工作:

<ng-container *ngFor="let item of items"">
   <a class="link"
      [attr.href]="item.url"
      [routerLink]="item.routerLink"
      rel="noopener noreferrer"
      tabindex="-1"
   >
     {{item.label}}
   </a>
<ng-container>
...

我在这里要做的是遍历一组项目并显示链接列表。问题是该项目可以具有url属性,或者routerLink. 根据项目具有的属性,我需要应用href属性或routerLink.

有没有办法在不使用 *ngIf 导致代码重复的情况下做到这一点?

4

2 回答 2

4

我建议您将策略移至component.ts

<a (click)="navigateToLink(item)">

navigateToLink( item ){
   if( item.routerLink ){
      this.router.navigate([item.routerLink]);
   }else if( item.url ){
      this.windows.open(item.url);
   }
}
于 2019-03-15T15:50:38.870 回答
0

尝试以下

 <ng-container>
       <a class="link"
          [attr.href]="item.url ? item.url : ''"
          [routerLink]="item.routerLink ? item.routerLink: ''"
          rel="noopener noreferrer"
          tabindex="-1"
       >
         {{item.label}}
       </a>
    <ng-container>
于 2019-03-15T15:45:38.340 回答