AngularJS将html范围显示为原始文本

时间:2016-07-09 19:26:42

标签: angularjs ionic-framework

我正在使用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>

但是这些代码并没有使这项工作正常进行。结果,我得到这样的原始/纯文本: enter image description here

我该怎么办?

1 个答案:

答案 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>