2016-12-13 127 views
3

我想使用(click)函數只有當ngIF有價值TrueAngular2點擊和ngIF

<tbody class="table-hover domains"> 
    <tr *ngFor="let domain of domains" (click)="gotoDetail(domain.id)"> 
     <td class="col-md-3">{{ domain.name }}</td> 
     <td>{{ domain.validated }}</td> 
    </tr> 
</tbody> 

所以我需要在<tr>標籤添加ngIF彷彿{{ domain.validated }}True,然後(click)功能工作,否則不工作或演出消息變量有值False。怎麼做?

回答

5

嘗試使用這樣的:

<tbody class="table-hover domains"> 
    <tr *ngFor="let domain of domains" (click)="!domain.validated || gotoDetail(domain.id)"> 
    <td class="col-md-3">{{ domain.name }}</td> 
    <td>{{ domain.validated }}</td> 
    </tr> 
</tbody> 

希望它會爲你工作。

僅當第一部分(!domain.validated)返回false時纔會調用該函數。

+0

它的工作原理,謝謝,所以我可以在(點擊)函數中檢查True/False的值,很好。 – Trimidas

+0

很高興知道,它爲你工作。是的,你可以檢查點擊裏面的真/假 – Viplock

+0

@Trimidas你可以接受答案,如果它適合你。 – Viplock

2

您可以將第二個參數Boolean指定給goToDetail函數,並僅在用戶爲true時重定向用戶。

+0

難道它只是隱藏所有標籤內,如果ngIF會是假的? – Trimidas

+0

是的,我讀了你的問題,以更快的速度工作,更合適的答案。 – Ploppy

0

試試這個:

<tbody class="table-hover domains"> 
    <template ngFor let-domain [ngForOf]="domains "> 
    <tr *ngIf="domain.validated" (click)="gotoDetail(domain.id)"> 
    <td class="col-md-3">{{ domain.name }}</td> 
    <td>{{ domain.validated }}</td> 
    </tr> 

可以使用ng-template也。

+0

在您的代碼和使用ng的情況下,如果domain.validated爲false,則隱藏標記。至少當我檢查它時,它確實如此。 – Trimidas

0

您可以定義函數是這樣的:

gotoDetail(id: number){ 
    if (this.domain.validated) 
    // Your normal code 
    else 
    // Display error message, Do nothing 
}