2017-06-30 8 views
-1

Imは単一の要素でngForとngIfを使用していましたが、後でngContainerを使用して試しました。アンギュラ2でngForとngIfを使用する

私は(ステータスが変更された場合)ここで私はステータス条件の原因の状態をチェックするために1行目にngIfを使用することはできませんボタンのクリックで行を非表示にする

<tbody> 

    <ng-container *ngFor="let d of pendingData"> 
     <tr *ngIf="d.status !== 'Issued'"> 
      <td>{{ d.orderno }} </td> 
      <td>{{ d.item }} </td> 
      <td> {{ d.emp }} </td> 
      <td>{{ d.employee_name }}</td> 
      <td>{{ d.item_name }}</td> 
      <td>{{ d.item_qty }}</td> 
      <td>{{ d.item_price }}</td> 
      <td>{{ d.status }}</td> 
      <td><button (click)="onClick()">Issue</button></td> 
     </tr> 
    </ng-container> 

</tbody> 

をしようとしてMは、ngForにオーバーloppedされますそれは未定義です!

最初に条件をテストし、上記のシナリオでループする方法。

+0

私はあなたの問題には触れていません、詳しく教えてください。 – trichetriche

+0

ステータスがペンディングから発行(ボタンクリック時)に変わったとき、その単純な、ステータスが変更された行を非表示にする必要があります – phyme

+0

コードがうまくいくはずです。機能 – trichetriche

答えて

-1

use <ng-container *ngFor="#d of pendingData">

<tr *ngIf="d.status != 'Issued'">

+0

テンプレート解析エラーが発生する: [#d of pendingData] – phyme

+0

pendingデータの#&try dを削除 – Vijay

0

私は右のそれを理解していれば、あなたはすでに発行した状態にあるデータを表示したくありません。あなたが行うことができることは、あなたのDOMに渡す前に、まずあなたのコンポーネントからフィルタをかけることで、htmlのngIfを削除することができます。

let filteredPendingData = pendingData.filter(x => x.status != 'Issued') 

<ng-container *ngFor="let d of filteredPendingData"> 
    <tr> 
    </tr> 
</ng-container> 
+0

修正済み、ステータスがPendingからIssuedに変更されたデータのみ、それらのデータを非表示にする必要があります。あなたのコードスニペットでURコードを表示してください! – phyme

+0

あなたのタイスクリプトコンポーネントはどこですか?あなたの '* ngIf'をHTMLから取り除き、typescriptコンポーネントに' filteredPendingData'コード行を入れてください。 –

関連する問題