我怎样才能保留AngularJS部分中的新行?
在一个AngularJS部分中,我正在循环一个条目列表,如下所示:
<ul class="entries"> <li ng-repeat="entry in entries"> <strong>{{ entry.title }}</strong> <p>{{ entry.content }}</p> </li> </ul>
{{entry.content}}
有一些被AngularJS忽略的换行符。 我怎样才能让它保持linebreaks?
这只是基本的HTML。 AngularJS不会改变任何事情。 你可以使用pre
标签来代替:
<pre>{{ entry.content }}</pre>
或者使用CSS:
p .content {white-space: pre} ... <p class='content'>{{ entry.content }}</p>
如果entry.content
包含HTML代码,则可以使用ng-bind-html
:
<p ng-bind-html="entry.content"></p>
不要忘记包括ngSanitize :
var myModule = angular.module('myModule', ['ngSanitize']);
我做filter
// filters js myApp.filter("nl2br", function($filter) { return function(data) { if (!data) return data; return data.replace(/\n\r?/g, '<br />'); }; });
然后
// view <div ng-bind-html="article.description | nl2br"></div>
我通过添加pre-line
修复它:
<style> pre{ white-space: pre-line; } </style> My data: <pre>{{feedback.Content}}<pre>
// AngularJS filter angular.module('app').filter('newline', function($sce) { return function(text) { text = text.replace(/\n/g, '<br />'); return $sce.trustAsHtml(text); } }); // HTML <span ng-bind-html="someText | newline"></span>