2016-09-06 6 views
2

自分のオブジェクトをフィルタリングするためのカスタムパイプを作成しました。これはドロップダウンセレクタで使用すると正しく動作します。しかし、私はフィルターが動作するたびにコンソールを介してログに記録することで、フィルターが複数回実行されることに気付きました。Angular2カスタムフィルタパイプが複数回実行されますか?

基本設定は、要素を含むドロップダウンメニューであり、次にこれらの要素を含むオブジェクトの一覧です。私のコンポーネントのOnInitは、ドロップダウンのデフォルト選択を設定しました。私のフィルターが複数回実行される理由は何ですか?

正常に動作していても、複数回実行されているため、別のフィルタを妨害しています。

+0

フィルタをどのように使用しているかを確認するには、コード/テンプレートを含めることができますか? –

+1

Angularは、アプリケーションの状態に応じてコンテンツを頻繁にリフレッシュします。私はただ一度呼ばれているものに数えません。 – rook

+0

あなたのコードを見ることなく、あなたの質問について理解するのは難しいです。 –

答えて

5

パイプが純粋(デフォルト)の場合、パイプの入力値またはパラメータが変更されたときにパイプが呼び出されます。

パイプが不純な場合@Pipe({name: 'xxx', pure: false})パイプは、変更検出が実行されるたびに呼び出されます(通常はかなり頻繁に行われます)。

+0

これは私が考え出したものです、私は実際には一度しか呼ばれていないという別の方法を使っていました。しかし、あなたが上で与えた情報は知るのに役立ちます。ありがとう! – johntzan

関連する問題