Hola a todos, tengo este problema.
import { Pipe, PipeTransform } from '@angular/core'; import { PrintingTypesService } from 'src/app/settings/services/printing-types/printing-types.service'; import { PrintingTypesModel } from 'src/app/settings/share/printing-types.model'; @Pipe({ name: 'printingTypesPipe', }) export class PrintingTypesPipePipe implements PipeTransform { public printingTypesData: PrintingTypesModel[] = []; name: any; constructor(private printingTypesService: PrintingTypesService) {} transform(value: string): any { this.printingTypesService.fetchPrintingTypes().subscribe((data) => { this.printingTypesData = data; const noon = this.printingTypesData.find((o: any) => { return Number(o.printing_type_id) === Number(value); }); this.name = ''; this.name = noon!.name_e; }); return this.name; } }¡Cuando registro en la consola this.name, me da una cadena, pero esta cadena no apareció en el navegador!
Lo intenté pero no encontré el problema principal? Muchas gracias por tu ayuda :)
cambie su función de transformación para devolver observable como este
transform(value: string): any { return this.printingTypesService.fetchPrintingTypes().pipe(map(data) => { this.printingTypesData = data; const noon = this.printingTypesData.find((o: any) => { return Number(o.printing_type_id) === Number(value); }); return noon!.name_e; }); }y en su plantilla, use una tubería asíncrona después de imprimir la tubería TypesPipe. Por ejemplo
{{ 'test' | printingTypesPipe | async }}