私はAngular2/Ionic2を学んでいるので、私の無知を許してください。私はこの問題に遭遇するまで、Pipesを学ばなければならず、すべてが簡単に思えました。温度を伴う完全な例を使って問題を実証してみましょう。可変パラメータ付き角度2パイプ
localStorageに保存されている設定(Celsiusはデフォルトの入力値)によって、CelisusまたはFahrenheitの温度値を返すパイプがあるとします。
だから私はこれを行うパイプ作成:
このパイプはパラメータ変更(温度単位)を監視し、新しい値を返すことができますどのように- :私がこだわっている
export class TemperatureConverterPipe implements PipeTransform { // Selected temperature unit private unit: string; constructor(private settings: Settings){ // Get immediately the temperature unit from localStorage // And subscribe to changes this.settings.radio().subscribe(data => { this.unit = data.temp_unit }); } // Return temperature transform(value: number): number { switch(this.unit){ case "c": return value; break; case "f": return celsiusToFahrenheit(value); break; default: return value; } } // Convert celsius temp to fahrenheit celsiusToFahrenheit(value: number){ return value * 9/5 + 32; } }
問題(eq C〜F)?現在のところ、入力(温度値)の変更のみを監視するためです。
- これを解決する正しい方法ですか?
ありがとうございました!
ユニットをパラメータ化することができます。 –
あなたの答えをもう少し詳しく説明できますか? @SurajRao –
可能ならば、あなたのコンポーネントからユニットを別のパラメータとして送るだけです。答えを追加してください。 –