Tengo una aplicación AngularJS, que recopila datos de la entrada, transforma un modelo en una cadena JSON.stringify()
y le permite al usuario editar este modelo de tal manera que los campos de entrada se actualizan si el <textarea>
elemento se actualiza y viceversa. Algún tipo de enlace bidireccional :)
El problema es que la cadena en sí se ve fea y me gustaría formatearla para que se vea así:
Y no como se ve ahora:
¿Alguna idea de cómo se puede lograr esto? Si necesita información adicional, no dude en preguntar. Cada respuesta es muy apreciada y respondida de inmediato.
Gracias.
PD: Supongo que esto debería ser algún tipo de directiva o un filtro personalizado. Los datos en sí NO DEBEN modificarse, solo la salida.
javascript
json
string
angularjs
formatting
amenoire
fuente
fuente
$watch
(basado en la respuesta a la pregunta anterior) sobre el modelo de área de texto, ¿puede hacerconsole.log()
y ver qué valor obtiene en la cadena para la tecla enter? Creo que es "/ n"Respuestas:
Puede utilizar un parámetro opcional de
JSON.stringify()
Por ejemplo:
le dará el siguiente resultado:
fuente
$$hashKey
usos angulares de la propiedad para el seguimiento del modelo internoJSON.stringify(object, null, 2)
donde 2 es el número de caracteres de espacio en blanco.Angular tiene una función incorporada
filter
para mostrarJSON
Tenga en cuenta el uso de la
pre
etiqueta -etiqueta para conservar espacios en blanco y saltos de líneaManifestación:
También hay un
angular.toJson
método, pero no he jugado con eso ( Docs )fuente
<pre>
etiqueta no debe tener lawhite-space
propiedad establecida ennormal
ono-wrap
. De lo contrario, su JSON no se sangraría como desea.Si está buscando renderizar JSON como HTML y se puede contraer / abrir, puede usar esta directiva que acabo de hacer para renderizarlo bien:
https://github.com/mohsen1/json-formatter/
fuente
Además del filtro angular
json
ya mencionado, también existe la función angulartoJson()
.El segundo parámetro de esta función le permite activar la impresión bonita y establecer el número de espacios a utilizar.
fuente
Supongo que quieres usar para editar el texto json. Entonces puedes usar el método de ivarni:
y agregue un atributo adicional para hacerEspero que esto le pueda ayudar.
fuente
Si desea formatear el JSON y también resaltar la sintaxis, puede usar la
ng-prettyjson
directiva. Vea el paquete npm.Así es como se usa:
<pre pretty-json="jsonObject"></pre>
fuente