簡體   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