2017-03-29 8 views
0

countryというエンティティとの関係を持つoperatorというエンティティがあります。国名に基づいて演算子リストをフィルタリングしたいのですが、演算子からこのフィルタを書くにはどうすればいいですか?正しい構文は何ですか?角2正しい構文

HTML

[(ngModel)]="opFilter.country?.name" 

TS:あなたが達成したい何

opFilter: any = { country?.name : '' }; 

答えて

0

は、単純なpipeを使用して行うことができます。

@Pipe({ name: 'countryFilter' }) 
export class CountryFilterPipe implements PipeTransform { 

    transform(operators: Operator[], countryName) { 
    return operators.filter(operator => operator.country === countryName); 
    } 
} 

と、このようなあなたのテンプレートでそれをバインド:countryはあなたがフィルタリングしたい国の名前を含むプロパティです

<h2 *ngFor="let op of operators | countryFilter: country">{{op.name}}</h2> 

。ここで

がいっぱいのデモです: https://plnkr.co/edit/GTP6P0PCDudH3NmWkkJf?p=preview

+0

私は両方のテンプレート側でこれらを試してみたが、私は​​ の

+0

あなたはあなたの質問に予期した結果を加えてください。私は予想される結果と一致するように私の答えを再フォーマットします。 – Supamiu

+0

特別な国に事業者のリストを表示したいと考えています。このフィルタを追加しました。ユーザーが国名(例:フランス)を入力すると、frensh演算子のリストが表示されます。これは私のoperator.model.tsファイルです。 –