繁体   English   中英

<a>有条件地禁用 Angular 中的标签</a>

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM