2017-03-16 5 views
2

mongoDB/Node-based APIから一連のクライアントレコードを取得し、それらをAngularアプリケーションのスクリーンに印刷しています。今私はそれらのレコードのフィルタリングされたリストが返される別のビューを作成したいと思います。フィルタ関数を使用してAPIからフィルタ結果リストを返す

特に、プロパティ "exitDate"のオブジェクトの値を持つクライアントレコードのリストを返したいとします。ここでの考え方は、exitDateがある場合(つまり値がnullでない場合)、レコードが「非アクティブ」な結果であることを意味します。

レコードのオリジナルコレクションは、このように、のOnInitのライフサイクルにおいて観察を介して生成されています:

this.clientService.getAll() 
     .subscribe(resRecordsData => this.clients = resRecordsData, 
     responseRecordsError => this.errorMsg = responseRecordsError); 

だから、これを行うには、私はフィルタ機能を使用しようとしています。これは私が持っているものです:

isInactive() { 
    this.inactiveClients = this.clients.filter(exitDate => !!exitDate); 
} 

このように扱うことはできますか?このフィルタ関数は、プロパティ "exitDate"の値を持つオブジェクトを返し、そうでないオブジェクトは除外しますか?

答えて

1

あなたはほとんど正しいですが、フィルタ関数は、引数オブジェクトの各1としてあなたを与えるだろうし、それはこのようなものになるだろうので、あなたは、プロパティとその値を探す必要があります:

this.clients.filter(client => client.exitDate !== null); 

配列のフィルタメソッドは配列をウォークし、各アイテムのコールバックを実行するので、コールバックで取得する最初の引数はアイテムそのものです。

この場合、exitDateプロパティを確認し、nullでない場合は 'true'を返します。

+0

これを試してみます。ありがとう。 – Muirik

+0

私はもう少しの情報を含めるように答えを編集しました –