在 AngularJS 部分中,我正在遍历条目列表,如下所示:
<ul class="entries">
<li ng-repeat="entry in entries">
<strong>{{ entry.title }}</strong>
<p>{{ entry.content }}</p>
</li>
</ul>
的内容{{entry.content}}
有一些被 AngularJS 忽略的换行符。我怎样才能让它保留换行符?
在 AngularJS 部分中,我正在遍历条目列表,如下所示:
<ul class="entries">
<li ng-repeat="entry in entries">
<strong>{{ entry.title }}</strong>
<p>{{ entry.content }}</p>
</li>
</ul>
的内容{{entry.content}}
有一些被 AngularJS 忽略的换行符。我怎样才能让它保留换行符?
它只是基本的 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']);
我做过滤器
// 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>