2017-08-24 19 views
1

Angulare4が新しく、リストから要素を除外したいと考えています。要素が既に配列に含まれています。Angular4:配列に含まれるリスト要素を除外します。

私はuserItems配列を持っているとしましょう。ユーザーはリストから項目を追加できますが、プロジェクトの現在の状態では、彼がすでに所有している項目を選択した場合、エラーメッセージが表示されます。

さらにシンプルで使いやすい方法は、自分が所有していない要素だけを表示することです。

<option *ngFor="let userItem of userItems" value="{{ userItem.id }}"> 
{{ userItem.name }} 
</option> 

どのように私は結果をフィルタリングすることができます:

これは私が現在使用している何ですか?私はパイプの使用について考えました

+0

あなたはloadashを使用できます – Sajeetharan

答えて

0

あなたが正しくしたいことが分かっていれば、入力値を見て、それを条件付きでリストから削除できます。

タグ内で#inputの構文を使用すると、option inputをビュー内のローカル変数に割り当てることができます。そしてそこから、*ngIfディレクティブをメニュー項目に適用して、それらを現在の値と比較することができます。そして、現在の値と一致するものを除外します。例えば

<option #input *ngFor="let userItem of userItems" value="{{ userItem.id }}"> 
    <ng-container *ngIf="userItem.id !== input.value"> 
     {{ userItem.name }} 
    </ng-container> 
</option> 
0

私のアドバイスはng-templateを使用することです:

<option *ngFor="let userItem of userItems" value="{{ userItem.id }}"> 
    <ng-template [ngIf]="some-condition"> 
    {{ userItem.name }} 
</ng-template> 
</option> 

代替は、ユーザーが新しい値を挿入すると、アレイ上filterを使用して、コンポーネント内のあなたの配列をフィルタリングすることです。

userItems.filter(value => value !== 3); 

あなたの質問を完全に理解できませんでした。 Pleseがより具体的でない場合。

関連する問題