[英]Disable <a> tag in Angular conditionally
我正在尝试禁用 Angular 模板中的链接。 可能会问一个不可能的问题。 有可能做这样的事情吗?
<a [routerLink]="['/details', item.id]" [disable]="disable">
<div class="row">
<div class="col-12">
<h4>text text text</h4>
</div>
</div>
</a>
当链接被禁用时,我希望它的行为<a>
标签就像一个普通的<div>
。
试试下面的代码。 根据条件更改href
值并应用一些 styles
模板
<a [routerLink]="disable? null: ['/details', 1]" [ngClass]="{'anchor-disable': disable}"> <div class="row"> <div class="col-12"> <h4>text text text</h4> </div> </div> </a>
CSS
a.anchor-disable { color: black; cursor: text; pointer-events: none; text-decoration: none; }
<div *ngIf="condition; else elseBlock">
<div class="row">
<div class="col-12">
<h4>text text text</h4>
</div>
</div>
</div>
<ng-template #elseBlock>
<a [routerLink]="['/details', item.id]">
<div class="row">
<div class="col-12">
<h4>text text text</h4>
</div>
</div>
</a>
</ng-template>
如果您使用的是 angular 材质,则可以使用 mat-button 属性和 ngClass 来实现此目的
<a mat-button href="https://www.google.com/" target="_blank" disabled="{{isDisabled}}"
[ngClass]="{'simple-text': isDisabled}">
Sample link
</a>
css
.simple-text {
color: black !important;
}
stackblitz 演示: https://stackblitz.com/edit/angular-hkmkn9?file=src%2Fapp%2Fapp.component.css
<a [routerLink]="disable ? null : ['/details', item.id]" [class.disabled]="disable">
<div class="row">
<div class="col-12">
<h4>text text text</h4>
</div>
</div>
</a>
.disabled {
pointer-events: none;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.