Essayer d'écrire un tube Angular 2 qui prendra une chaîne d'objet JSON et la renverra assez imprimée / formatée pour l'afficher à l'utilisateur.
Par exemple, cela prendrait ceci:
{"id": 1, "number": "K3483483344", "state": "CA", "active": true}
Et renvoyez quelque chose qui ressemble à ceci lorsqu'il est affiché en HTML:
Donc, à mon avis, je pourrais avoir quelque chose comme:
<td> {{ record.jsonData | prettyprint }} </td>
Réponses:
Je voudrais ajouter un moyen encore plus simple de le faire, en utilisant le
json
tube intégré :De cette façon, la mise en forme est préservée.
la source
<pre>
et ne fonctionnera pas avec , par exemple<p>
,<span>
etc.Je créerais un tuyau personnalisé pour cela:
et utilisez-le de cette façon:
Voir ce stackblitz: https://stackblitz.com/edit/angular-prettyprint
la source
<div>{{obj | prettyprint }}</div>
mais cela a fonctionné!json
tuyau intégré , comme dans Angular 1.implements PipeTransform
aprèsexport class PrettyPrintPipe
Comme il s'agit du premier résultat sur Google, permettez-moi d'ajouter un bref résumé:
si vous avez seulement besoin d'imprimer JSON sans formatage approprié, le
json
tube intégré suggéré par Shane Hsu fonctionne parfaitement:<pre>{{data | json}}</pre>
cependant, si vous souhaitez avoir une sortie différente, vous devrez créer votre propre pipe comme l'a suggéré Thierry Templier:
ng g generate pipe prettyjson
innerHTML
fonction:la source
puisque ma variable est liée dans les deux sens avec ngModel, je ne pouvais pas le faire sur html. Je l'ai utilisé côté composant
JSON.stringify(displayValue, null, 2)
et ça a fait le boulot.la source