这是我试图让它工作的JSFiddle文件。
我创建了一个简单的过滤器,将\n
换行符从JSON更改为<br>
,以便在HTML中提供换行符,但它无法按预期工作。
问题是:输出<br>
标记按原样显示,而不是像 换行符 那样由浏览器呈现。
到目前为止,我已尝试使用$sce
变量(例如
angular.module('myApp.filters', [])
.filter('linebreak', function() {
return function(text) {
return text.replace(/\n/g, '<br>');
}
})
.filter('to_trusted', ['$sce', function($sce){
return function(text) {
return $sce.trustAsHtml(text);
};
}]);
并在ng-bind
中管道过滤器,如:
<div ng-bind="data.para | linebreak | to_trusted"></div>
但这并不能解决问题。在这种情况下,如何告诉浏览器左边是HTML并将其渲染为换行符?
答案 0 :(得分:4)
在html中使用$sce
时,您必须使用ng-bind-html
指令而不是ng-bind
:
<div ng-app="myApp">
<div ng-controller="jsonCtrl">
<div ng-repeat="data in textFile">
<div ng-bind-html="data.para | linebreak | to_trusted"> </div>
</div>
</div>
</div>
答案 1 :(得分:0)