2016-12-13 5 views
3

(click)は、ngIFの値がTrueの場合にのみ使用します。Angular2クリックと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> 

だから私はそれが変数に値Falseを持っていることを示すメッセージが仕事や表示されない他、その後、(click)機能が働き、{{ domain.validated }}値はTrueであるかのように<tr>タグでngIFを追加する必要があります。どうやってするか?

答えて

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を返す場合にのみ呼び出されます。あなたはまた、ng-templateを使用することができます

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

+0

本当にありがとう、私はTrue/Falseの値を(クリック)機能で確認できます。 – Trimidas

+0

幸せなことに、それはあなたのために働いた。はい、クリック内で真/偽をチェックすることができます – Viplock

+0

@Trimidasそれはあなたのために働いた場合、答えを受け入れることができます。 – Viplock

2

2番目のパラメータBooleanをgoToDetail関数に指定し、trueの場合にのみユーザーをリダイレクトできます。

+0

はそれだけで、タグのすべての内部を隠していませんか? – Trimidas

+0

はい、私はあなたの質問をより速く、より適切な答えに取り組んでいます。 – Ploppy

0

はこれを試してみてください。

+0

あなたのコードでは、ngIを使用してdomain.validatedがfalseの場合、タグを隠します。少なくとも私がそれをチェックしたときは、それはそうです。 – Trimidas

0

あなたはこのようなあなたの関数を定義することができます:ngIFがfalseになる場合

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