142 votes

Tube 2 angulaire qui transforme un objet JSON en un JSON joliment imprimé

Essayer d'écrire Angulaire à 2 pipe qui va prendre en paramètre un objet JSON chaîne et de le retourner joli imprimé/mise en forme pour afficher à l'utilisateur.

Par exemple, il faudrait de ce:

{ "id": 1, "nombre": "K3483483344", "état": "CA", "active": true }

Et le retour de quelque chose qui ressemble à ceci lors de l'affichage en HTML:

enter image description here

Donc à mon avis je pourrais avoir quelque chose comme:

<td> {{ record.jsonData | prettyprint }} </td>

427voto

Shane Hsu Points 3051

Je voudrais ajouter un moyen encore plus simple de faire cela, en utilisant le tube intégré json :

 <pre>{{data | json}}</pre>
 

De cette façon, le formatage est préservé.

30voto

thierry templier Points 998

Je créerais un tuyau personnalisé pour ceci:

 @Pipe({
  name: 'prettyprint'
})
export class PrettyPrintPipe implements PipeTransform {
  transform(val) {
    return JSON.stringify(val, null, 2)
      .replace(' ', '&nbsp;')
      .replace('\n', '<br/>');
  }
}
 

et l'utiliser de cette façon:

 @Component({
  selector: 'my-app',
  template: `
    <div [innerHTML]="obj | prettyprint"></div>
  `,
  pipes: [ PrettyPrintPipe ]
})
export class AppComponent {
  obj = {
    test: 'testttt',
    name: 'nameeee'
  }
}
 

Voir ce stackblitz: https://stackblitz.com/edit/angular-prettyprint

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X