我正在使用API来获取我的博客帖子。但我得到的内容是HTML代码,但我正试图看到它,就像我在博客中看到的那样但是没有用。 我曾尝试过使用这个过滤器和函数:
.filter('unsafe', function($sce) {
return function(val) {
return $sce.trustAsHtml(val);
};
})
在控制器中:
function htmlDecode(input){
var e = document.createElement('div');
e.innerHTML = input;
return e.childNodes[0].nodeValue;
}
在模板中:
<div ng-bind-html="post.conteudo | unsafe"></div>
但是这些代码并没有使这项工作正常进行。结果,我得到这样的原始/纯文本:
我该怎么办?
答案 0 :(得分:0)
你太复杂了。您不需要此过滤器以及htmlDecode
功能。您所需要的只是$sce.trustAsHtml
:
$scope.post.conteudo = $sce.trustAsHtml('<b>Thomas Mann</b>');
并在HTML中:
<div ng-bind-html="post.conteudo"></div>
angular.module('demo', []).controller('DemoController', function($scope, $sce) {
$scope.post = {}
$scope.post.conteudo = $sce.trustAsHtml('<b>Thomas Mann</b>')
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="demo" ng-controller="DemoController">
<div ng-bind-html="post.conteudo"></div>
</div>