内置角管-引用先前管道的输入值

时间:2019-04-08 07:42:41

标签: angular

我有一个自定义管道,该管道返回一个对象,我需要在货币内置管道中引用该对象的属性。

考虑以下示例:

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>

是否有一种方法可以引用以前的管道返回值而无需自定义内置货币管道?

2 个答案:

答案 0 :(得分:1)

这是解决此情况的一种优雅方法:

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

实时示例here

答案 1 :(得分:0)

您可以在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