2017-06-28 5 views
0

Dies ist mein Datenobjekt in der KomponenteFormatierungsfilter/Pipe dynamisch in * ngFor in Angular (Angular 2/4) anwenden?

testData=[ 
    { 
    "value": "test value with null formatter", 
    "formatter": null, 
    }, 
    { 
    "value": "1234.5678", 
    "formatter": "number:'3.5-5'", 
    }, 
    { 
    "value": "1.3495", 
    "formatter": "currency:'USD':true:'4.2-2'", 
    } 
] 

HTML

<div *ngFor="let data of testData">{{data.value | data.formatter}}</div> 

Ich brauche in anderem Format mit jeder Zeile eine Tabelle von Daten anzuzeigen.

Ich benutze typescript/angular4.

Antwort

1

Eine Option besteht darin, eine benutzerdefinierte Pipe zu erstellen. Sie könnten dann Ihre Formatierungszeichenfolge an Ihre benutzerdefinierte Pipe übergeben. Ihre benutzerdefinierte Pipe analysiert die übergebene Formatierungszeichenfolge und führt die entsprechende Formatierung durch.

Klingt das wie es funktionieren könnte?

+0

Vielen Dank das funktioniert, ich habe etwas ähnliches zu Ihrem Vorschlag erstellt. –

0

Sie müssen Rohre erstellen.

Probe (Zum Austausch mit N?):

import { Pipe, PipeTransform } from '@angular/core'; 

@Pipe({name: 'nnn'}) 
export class NReplacePipe implements PipeTransform { 
    transform(value: string): string { 
    // write your custom logic here 
    let newValue = value.replace(/\?/g, 'N'); 
    return `${newValue}`; 
    } 
} 

und es dann in Ihrem HTML-Code verwendet

<p>varName | nnn </p> 

Diese Ausgabe verwandeln würde.