angular - extender un pipe como currency o number en un pipe personalizado en angular2
Me gustaría llamar al numberPipe en mi pipe personalizado. Encuentro esta respuesta.
Angular2 usar pipe básico en pipe personalizado
pero esta solución no funciona para mí. Tengo un error "No se pudo encontrar el pipe 'bigInteger'"
import { Pipe, PipeTransform } from "@angular/core"
import { CurrencyPipe } from "@angular/common"
@Pipe({
name: "bigInteger"
})
export class BigInteger extends CurrencyPipe implements PipeTransform {
transform(value: any): string {
return value
}
}
Respuesta #1
Tal vez esté obsoleto, pero esto funcionó para mí (Angular 5):
import { Pipe, PipeTransform } from '@angular/core';
import { DecimalPipe } from '@angular/common'
@Pipe({
name: 'bigInteger'
})
export class BigInteger extends DecimalPipe implements PipeTransform {
transform(value: any, args?: any): any {
let result;
result = super.transform(value, args);
//any transformations you need
return result;
}
}
Luego simplemente lo usas como un pipe de números normal, pero puedes personalizarlo como desees:
<span>{{someValue | bigInteger : '1.2-2'}}</span>
Respuesta #2
actualizar
esto debería haberse arreglado desde hace tiempo al menos en Angular4
original
Hay un problema conocido con la inyección de dependencias y las clases que extienden a otras clases
https://github.com/angular/angular/issues/8694
Hasta que esto se arregle, puedes usar composición en lugar de herencia:
@Pipe({
name: "bigInteger"
})
export class BigInteger implements PipeTransform {
constructor(private currencyPipe:CurrencyPipe) {}
transform(value: any): string {
return this.currencyPipe.transform(value);
}
}
