$ sce.trustAsHtml无效

时间:2016-10-17 12:02:24

标签: angularjs plaintext ng-bind-html

我正在从我的REST API发布内容。 我得到的内容:“<p>test post body</p>

首先,我正在解析纯文本

data[i].postBody = $sce.trustAsHtml(data[i].postBody);

在我这样做并尝试使用ng-bind-html

显示之后
<span ng-bind-html="value.postBody"></span>

并继续显示为html。

输出:

<p>test post body</p>

我无法在没有html标签的情况下显示文字

请帮帮我!

1 个答案:

答案 0 :(得分:4)

使用htmlDecode函数首先转义HTML实体

HTML:

<div ng-bind-html="value.postBody"></div>

JS:

angular.module('ngApp', ['ngSanitize'])
.controller('controller1', ['$scope','$sce', function($scope, $sce) {
    // Some Code ...
    ...
    ...
    function htmlDecode(input) {
        var e = document.createElement('div');
        e.innerHTML = input;
        return e.childNodes.length === 0 ? "" : e.childNodes[0].nodeValue;
    }
    data[i].postBody = $sce.trustAsHtml(htmlDecode(data[i].postBody));
    ...
    ...
    // Some Code ...
}]);

小提琴链接:http://jsfiddle.net/3J25M/771/