2016-08-07 5 views
0

パイプは不純なパイプのように振る舞うことはできますが、発生するイベントごとに実行することはできません。たとえば、言語のドロップダウン値の変更でのみ実行される翻訳パイプを作成したい場合純粋なパイプと不純なパイプを角2で混合する

答えて

2

キャッシュを使用します。各翻訳のためにオリジナルと翻訳を保存します。

パイプへの呼び出しごとに、キャッシュ内で検索し、存在する場合はそれを使用して変換を行い、キャッシュに保存します。

キャッシュを格納する注射可能なサービスを使用します。

すると、言語ドロップダウン変更、キャッシュをクリア;)

0

この質問は古いです。しかし、まだ答えは受け入れられていないので、私の考えも加えてください。

parametersをパイプに追加できます。パラメータが変更されると、パイプはtransform関数を呼び出します。

@Javierと同じように、注入可能なサービスを使用して別の翻訳キャッシュを保存することができます。 transform関数では、パラメータをチェックし、それをキーとして使用してサービスから翻訳を取得します。