Угловая встроенная труба — ссылка на входное значение из предыдущей трубы

#angular

#угловой

Вопрос:

У меня есть пользовательский канал, который возвращает объект, и мне нужно сослаться на свойство этого объекта во встроенном канале currency.

рассмотрим этот пример:

price-pipe.js:

 @Pipe({name: 'price'})
export class PricePipe implements PipeTransform {
    transform(device: any): string {
         // ...some logic
         return {
             value: device.price,
             currencyCode: device.currencyCode
         }

    }
}
  

device.html

 <div>
/* I need to take "currencyCode from the price pipe and pass it as parameter to currency pipe */
{{device | price | currency}} 
</div>
  

Есть ли способ ссылаться на предыдущее возвращаемое значение канала без настройки встроенного канала валют?

Ответ №1:

Это элегантный способ решения этой ситуации:

 <ng-container *ngIf="(device | price) as priceData">
    {{priceData.value | currency: priceData.currencyCode}}
</ng-container>
  

живой пример здесь

Ответ №2:

Вы можете использовать встроенные каналы в вашем TypeScript :

 import {CurrencyPipe} from '@angular/common'
constructor(private cp: CurrencyPipe) { ... }

this.value = 12345;
this.value = this.cp.transform(this.value, 'USD': true: '1.0-0'); // $12,345