Я изучаю Angular2/Ionic2, поэтому, пожалуйста, извините мое невежество. Я добрался до обучения Pipes, и все казалось легким, пока я не наткнулся на эту проблему. Позвольте мне продемонстрировать проблему, используя прекрасный пример с температурами.Угловая 2 трубы с переменным параметром
Скажите, что у меня есть труба, возвращающая значение температуры Celisus или Fahrenheit, в зависимости от настройки, сохраненной на localStorage (значение по Цельсию - по умолчанию).
Так что я создал трубы, которые делают это:
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;
}
}
Проблемы я застрял на:
- Как эта труба может наблюдать за изменением параметров (единица измерения температуры) и возвращает новые значения (от C до F)? Потому что в настоящее время он только следит за изменениями ввода (температуры).
- Это правильный способ решить эту проблему?
спасибо!
вы можете параметризовать устройство. –
Может ли вы немного подробнее дать свой ответ? @SurajRao –
Я имел в виду, если это возможно, просто отправьте устройство из своего компонента в качестве другого параметра. Добавьте ответ. –