AngularJs:如何解码HTML中的HTML实体
AngularJs: How to decode HTML entities in HTML?
情况:
我正在构建一个网页,其中的内容是通过调用API获取的,该API以json格式返回数据。
问题是html标记是作为html实体给出的,必须对其进行解码。
示例:
这是我正在处理的json示例:
<p align="justify"><strong>15<sup>th</sup> HERE THERE IS A BOLD TEXT </strong> HERE SOME NORMAL TEXT...
尝试:
我花时间研究它,它似乎比我想象的要难。在谷歌和类似的SO问题,一个可能的解决方案是使用ng bing html
Api呼叫:
$http.get('http://API/page_content').then(function(resp)
{
$scope.content_test = resp.data[0].content;
}
过滤器:
.filter('trusted', ['$sce', function($sce){
return function(text) {
return $sce.trustAsHtml(text);
};
}])
Ng绑定角度视图中的html:
<div ng-bind-html=" content_test | trusted"></div>
输出:
这是视图中的输出(正如您所看到的(:
<p align="justify"><strong>15<sup>th<'/sup> HERE THERE IS A BOLD TEXT<'/strong> HERE SOME NORMAL TEXT...
但我需要看到的是正确格式化的文本:
此处有粗体文本此处为一些普通文本。。。
问题:
如何在AngularJs中以正确格式的HTML解码HTML实体?
我认为在将其传递给$sce
之前,还需要执行一个"解码"步骤。例如:
app.filter('trusted', ['$sce', function($sce) {
var div = document.createElement('div');
return function(text) {
div.innerHTML = text;
return $sce.trustAsHtml(div.textContent);
};
}]);
演示:http://plnkr.co/edit/LrT4tgYtTu4CPrOAidra?p=preview
添加angular.sanitize.js
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.1/angular-sanitize.js"></script>
将依赖项添加为,
var app = angular.module('plunker', ['ngSanitize']);
NOW解码html字符串并将其传递给ng-bind-html。
$http.get('http://API/page_content').then(function(resp)
{
var html = resp.data[0].content;
var txt = document.createElement("textarea");
txt.innerHTML = html;
$scope.content_test = txt.value;
//if you use jquery then use below
//$scope.content_test = $('<textarea />').html(html).text();
}
<div ng-bind-html="content_test"></div>
我认为您可以避免filter
,请参阅下面的示例。
示例
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 使用html中的外部javascript进行数据验证
- JS验证ajax返回的html中的表单数据
- 如何使用jquery更改html中的背景颜色
- Brightcove获取/显示HTML中的当前视频标题和描述
- 如何关闭html中的iframe弹出窗口
- 计算HTML中的页数
- 通过Javascript将HTML中的电话号码与URL参数进行交换
- 是否可以从html中的javascript调用.vbs文件
- HTML中的垂直进度条
- HTML 中的 Javascript 不会执行
- 使用CSS嵌入HTML中的水平居中jQuery
- 从JavaScript中正确返回html中的特殊字符
- 访问HTML中的data-*属性并将其作为道具传递
- 从.js文件调用html中的js函数
- JS/jquery:我将如何遍历HTML中的每个图像
- 对javascript使用.html中的select id
- 引用nodejs服务器中html中的java脚本文件
- 可以't在Wordpress中从HTML中的JS文件调用函数
- 从HTML中的外部JS文件调用函数