He visto esta pregunta SO.
Mi código en lugar de ng-bind="item.desc"
usos {{item.desc}}
porque tengo un ng-repeat
antes.
Entonces mi código:
<div ng-repeat="item in items">
{{item.description}}
</div>
La descripción del artículo contiene \n
líneas nuevas que no se representan.
¿Cómo puede {{item.description}}
mostrar las nuevas líneas fácilmente suponiendo que tengo lo ng-repeat
anterior?
angularjs
angularjs-ng-repeat
Diolor
fuente
fuente
div
constyle="white-space:pre-wrap;"
.Respuestas:
Basado en la respuesta de @pilau, pero con una mejora que incluso la respuesta aceptada no tiene.
Esto usará nuevas líneas y espacios en blanco como se indica, pero también dividirá el contenido en los límites del contenido. Puede encontrar más información sobre la propiedad de espacios en blanco aquí:
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
Si desea romper en las nuevas líneas, pero también colapsar múltiples espacios o espacios en blanco anteriores al texto (muy similar al comportamiento original del navegador), puede usar, como sugirió @aaki:
Buena comparación de los diferentes modos de representación: http://meyerweb.com/eric/css/tests/white-space.html
fuente
pre-line
el preferido? Está más cerca de la forma en que HTML generalmente representa el contenido de texto de sus nodos y aún conserva las nuevas líneas.pre-line
Es el camino a seguir. Gracias paul!Tratar:
El
<pre>
contenedor imprimirá el texto\n
como texto.también si imprime el json, para una mejor apariencia use el
json
filtro, como:Demo
Estoy de acuerdo con
@Paul Weber
quewhite-space: pre-wrap;
es un mejor enfoque, de todos modos, el uso<pre>
rápido, principalmente para depurar algunas cosas (si no desea perder tiempo en el estilo)fuente
\n
áreas que no conozco, no al final. Creo que necesito elpre
basado en tu edición.@pilau
la respuesta de ustedes es correcta, pero no significa que la mía esté equivocada y, por lo tanto, me\n
a<br/>
's y luego, por supuesto, estas etiquetas no se representaron como marcado HTML ... después de toda esta conversión encontró sustyle
solución y esta es una ayuda y simplificación increíbles ... ahora no tengo que seguir convirtiendo todos mis datos de backend y solo hacer algunos cambios en la Vista ... ¡Te mereces +1000!Es muy simple con CSS (funciona, lo juro).
fuente
pre
etiqueta. ¿Quizás abrir otra pregunta? ¿O tal vez me perdí tu punto?Con CSS esto se puede lograr fácilmente.
O se puede crear una clase CSS para este propósito y se puede usar desde un archivo CSS externo
fuente
Bueno, depende, si desea vincular datos, no debería haber ningún formato, de lo contrario, puede
bind-html
y nodescription.replace(/\\n/g, '<br>')
está seguro de que sea lo que desea.fuente
la solución css funciona, sin embargo, realmente no tienes control sobre el estilo. En mi caso, quería un poco más de espacio después del salto de línea. Aquí hay una directiva que creé para manejar esto (mecanografiado):
Utilizar:
Todo lo que hace es envolver cada parte del texto en una
<p>
etiqueta. Después de eso, puedes diseñarlo como quieras.fuente
Solo agrega esto a tus estilos, esto funciona para mí
Por este texto
<textarea>
se puede mostrar como está allí con espacios y frenos de líneaHTML
CSS
fuente
Sí, me gustaría utilizar la
<pre>
etiqueta o utilizarng-bind-html-unsafe
http://docs-angularjs-org-dev.appspot.com/api/ng.directive:ngBindHtmlUnsafe (uso ng-bind-html si utiliza 1.2+) después de ir.replace()
a cambiar/n
a<br />
fuente
ng-bind-html-unsafe
está en desusoSolo usa el estilo css "espacio en blanco: pre-wrap" y estarás listo. He tenido el mismo problema en el que necesito manejar mensajes de error para los cuales los saltos de línea y los espacios en blanco son realmente particulares. ¡Acabo de agregar este en línea donde estaba vinculando los datos y funciona como Charm!
fuente
Tuve un problema similar para ti. No estoy tan interesado en las otras respuestas aquí porque realmente no le permiten diseñar el comportamiento de la nueva línea con mucha facilidad. No estoy seguro si tiene control sobre los datos originales, pero la solución que adopté fue cambiar los "elementos" de ser una matriz de cadenas a ser una matriz de matrices, donde cada elemento en la segunda matriz contenía una línea de texto . De esa manera puedes hacer algo como:
De esta manera, puede aplicar clases a los párrafos y aplicarles un estilo agradable con CSS.
fuente