J'ai vu cette question SO.
Mon code au lieu de l' ng-bind="item.desc"
utilise {{item.desc}}
car j'ai un ng-repeat
avant.
Donc mon code:
<div ng-repeat="item in items">
{{item.description}}
</div>
La description de l'élément contient \n
pour les retours à la ligne qui ne sont pas rendus.
Comment {{item.description}}
afficher les nouvelles lignes facilement en supposant que j'ai ce qui ng-repeat
précède?
div
avecstyle="white-space:pre-wrap;"
.Réponses:
Basé sur la réponse de @pilau - mais avec une amélioration que même la réponse acceptée n'a pas.
Cela utilisera les nouvelles lignes et les espaces comme indiqué, mais interrompra également le contenu aux limites du contenu. Plus d'informations sur la propriété d'espace blanc peuvent être trouvées ici:
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
Si vous souhaitez interrompre les sauts de ligne, mais également réduire plusieurs espaces ou espaces blancs précédant le texte (très similaire au comportement d'origine du navigateur), vous pouvez utiliser, comme @aaki l'a suggéré:
Jolie comparaison des différents modes de rendu: http://meyerweb.com/eric/css/tests/white-space.html
la source
pre-line
préférez? Il est plus proche de la façon dont HTML rend habituellement le contenu du texte de ses nœuds tout en préservant les nouvelles lignes.pre-line
est la voie à suivre. Merci Paul!Essayer:
Le
<pre>
wrapper imprimera le texte avec\n
comme texteégalement si vous imprimez le json, pour une meilleure apparence, utilisez un
json
filtre, comme:Demo
Je suis d'accord avec
@Paul Weber
cela,white-space: pre-wrap;
c'est une meilleure approche, de toute façon en utilisant<pre>
- le moyen rapide principalement pour déboguer certaines choses (si vous ne voulez pas perdre de temps à styliser)la source
\n
zones que je ne connais pas, pas à la fin. Je pense que j'ai besoin dupre
basé sur votre modification.@pilau
la réponse de vous est la bonne, mais cela ne signifie pas que la mienne est fausse et donc j'ai été déclassé\n
en<br/>
's et bien sûr, ces balises n'étaient pas rendues sous forme de balisage HTML ... après toute cette conversion a trouvé votrestyle
solution et c'est une aide et une simplification incroyables ... maintenant je ne le fais pas Je dois continuer à convertir toutes mes données backend et juste faire quelques changements dans la vue ... Vous méritez +1000!C'est tellement simple avec CSS (ça marche, je le jure).
la source
pre
balise. Peut-être ouvrir une autre question? Ou peut-être ai-je manqué votre point?Avec CSS, cela peut être réalisé facilement.
Ou une classe CSS peut être créée à cet effet et peut être utilisée à partir d'un fichier CSS externe
la source
Eh bien, cela dépend, si vous voulez lier des données, il ne devrait pas y avoir de formatage, sinon vous pouvez
bind-html
et n'êtesdescription.replace(/\\n/g, '<br>')
pas sûr que ce soit ce que vous voulez.la source
la solution css fonctionne, mais vous ne contrôlez pas vraiment le style. Dans mon cas, je voulais un peu plus d'espace après le saut de ligne. Voici une directive que j'ai créée pour gérer cela (dactylographié):
Utilisation:
Tout ce qu'il fait, c'est envelopper chaque partie du texte dans une
<p>
balise. Après cela, vous pouvez le coiffer comme vous le souhaitez.la source
Ajoutez simplement ceci à vos styles, cela fonctionne pour moi
Par ce texte,
<textarea>
peut être affiché comme il est là-dedans avec des espaces et des freins de ligneHTML
CSS
la source
Oui, j'utiliserais la
<pre>
balise ou utiliseraisng-bind-html-unsafe
http://docs-angularjs-org-dev.appspot.com/api/ng.directive:ngBindHtmlUnsafe (utilisez ng-bind-html si vous utilisez 1.2+) après avoir utilisé.replace()
pour changer/n
en<br />
la source
ng-bind-html-unsafe
est obsolèteUtilisez simplement le style css "white-space: pre-wrap" et vous devriez être prêt à partir. J'ai eu le même problème où je dois gérer les messages d'erreur pour lesquels les sauts de ligne et les espaces blancs sont vraiment particuliers. Je viens d'ajouter cette ligne où je liais les données et cela fonctionne comme Charm!
la source
J'ai eu un problème similaire à vous. Je n'aime pas trop les autres réponses ici car elles ne vous permettent pas vraiment de définir très facilement le comportement de nouvelle ligne. Je ne sais pas si vous avez le contrôle sur les données d'origine, mais la solution que j'ai adoptée a consisté à faire passer les "éléments" d'un tableau de chaînes à un tableau de tableaux, où chaque élément du deuxième tableau contenait une ligne de texte . De cette façon, vous pouvez faire quelque chose comme:
De cette façon, vous pouvez appliquer des classes aux paragraphes et les styliser joliment avec CSS.
la source