有条件地应用没有 *ngIf 的 href 或 routerLink
Conditionally apply either href or routerLink without *ngIf
我的 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 的方法?
尝试以下方法
<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>
我建议您将策略移动到 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);
}
}
我的 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 的方法?
尝试以下方法
<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>
我建议您将策略移动到 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);
}
}