Eu já vi essa pergunta.
Meu código em vez de ng-bind="item.desc"
usa {{item.desc}}
porque eu tenho um ng-repeat
antes.
Então meu código:
<div ng-repeat="item in items">
{{item.description}}
</div>
A descrição do item contém \n
para novas linhas que não são renderizadas.
Como a {{item.description}}
exibição das novas linhas pode facilmente assumir que eu tenho o ng-repeat
descrito acima?
angularjs
angularjs-ng-repeat
Diolor
fonte
fonte
div
comstyle="white-space:pre-wrap;"
.Respostas:
Com base na resposta de @pilau - mas com uma melhoria que nem a resposta aceita possui.
Isso usará novas linhas e espaços em branco, conforme indicado, mas também interromperá o conteúdo nos limites do conteúdo. Mais informações sobre a propriedade de espaço em branco podem ser encontradas aqui:
https://developer.mozilla.org/en-US/docs/Web/CSS/white-space
Se você deseja quebrar as novas linhas, mas também recolher vários espaços ou espaços em branco antes do texto (muito semelhante ao comportamento original do navegador), use-o como sugeriu @aaki:
Boa comparação dos diferentes modos de renderização: http://meyerweb.com/eric/css/tests/white-space.html
fonte
pre-line
o preferido? Está mais próximo da maneira como o HTML geralmente renderiza o conteúdo de texto de seus nós e ainda preserva as novas linhas.pre-line
é o caminho a percorrer. Obrigado Paul!Experimentar:
O
<pre>
invólucro imprimirá o texto com\n
o textoAlém disso, se você imprimir o json, para obter uma melhor aparência, use o
json
filtro, como:Demo
Eu concordo com
@Paul Weber
awhite-space: pre-wrap;
melhor abordagem, de qualquer maneira, usando<pre>
- o caminho mais rápido para depurar algumas coisas (se você não quiser perder tempo em estilizar)fonte
\n
áreas que eu não conheço, não no final. Eu acho que preciso do compre
base em sua edição.@pilau
's resposta é um adequado, mas isso não significa que a mina está errado e, portanto, eu tenho downvoted\n
para<br/>
's' e, é claro, essas tags não estavam sendo renderizadas como marcação HTML ... depois de toda essa conversão encontrar suastyle
solução e isso é uma ajuda e simplificação incrível ... agora não sei tenho que continuar convertendo em torno de todos os meus dados de back-end e apenas fazer algumas alterações na exibição ... Você merece +1000!É tão simples com CSS (funciona, eu juro).
fonte
pre
tag. Talvez abrir outra pergunta? Ou talvez eu tenha perdido o seu ponto?Com CSS, isso pode ser alcançado facilmente.
Ou uma classe CSS pode ser criada para esse fim e pode ser usada em um arquivo CSS externo
fonte
Bem, depende, se você deseja vincular dados, não deve haver formatação, caso contrário, você pode
bind-html
e nãodescription.replace(/\\n/g, '<br>')
tem certeza de que é o que deseja.fonte
a solução css funciona, no entanto, você realmente não tem controle sobre o estilo. No meu caso, eu queria um pouco mais de espaço após a quebra de linha. Aqui está uma diretiva que eu criei para lidar com isso (texto datilografado):
Usar:
Tudo o que faz é agrupar cada parte do texto em uma
<p>
tag. Depois disso, você pode modelá-lo como quiser.fonte
Basta adicionar isso aos seus estilos, isso funciona para mim
Por esse texto,
<textarea>
pode ser exibido como está lá com espaços e freios de linhaHTML
CSS
fonte
Sim, eu usaria a
<pre>
tag oung-bind-html-unsafe
http://docs-angularjs-org-dev.appspot.com/api/ng.directive:ngBindHtmlUnsafe (use ng-bind-html se você estiver usando 1.2+) depois de usar.replace()
para mude/n
para<br />
fonte
ng-bind-html-unsafe
está obsoletoBasta usar o estilo css "white-space: pre-wrap" e você deve estar pronto. Eu tive o mesmo problema em que preciso lidar com mensagens de erro para as quais as quebras de linha e os espaços em branco são realmente particulares. Acabei de adicionar este inline onde vinculava os dados e funciona como um encanto!
fonte
Eu tive um problema semelhante a você. Não estou muito interessado nas outras respostas aqui, porque elas realmente não permitem que você estilize o comportamento da nova linha com muita facilidade. Não tenho certeza se você tem controle sobre os dados originais, mas a solução que eu adotei foi mudar "itens" de uma matriz de seqüências de caracteres para uma matriz de matrizes, onde cada item na segunda matriz continha uma linha de texto . Dessa forma, você pode fazer algo como:
Dessa forma, você pode aplicar classes aos parágrafos e estilizá-las com CSS.
fonte