详解Angular.js数据绑定时自动转义html标签及内容


Posted in Javascript onMarch 30, 2017

angularJS在进行数据绑定时默认是以字符串的形式数据,也就是对你数据中的html标签不进行转义照单全收,这样提高了安全性,防止html标签的注入攻击,但有时候需要,特别是从数据库读取带格式的文本时,无法正常的显示在页面中。

而要对html进行转义,则需要在数据绑定的html标签中使用ng-bind-html属性,该属性依赖与$sanitize,也就是需要引入angular-sanitize.js文件,并在module定义时注入该服务ngSanitize。比如:

html:

<span ng-controller = "myCtr" ng-bind-html = "htmlStr"></span>

javascript:

function myCtr($scope){

$scope.htmlStr = '<p style="color:white;background:#f60;"></p>';

};

这样可以实现html转义,但是有个问题是style这种标签会被angularJS认为是不安全的所以统统自动过滤掉,而为了保留这些就需要开启非安全模式。

如何让自动加载的数据转义html标签呢?实际上还有一种绑定方式:

html:

<div ng-repeat = "article in articles">

<div class="panel-heading">



<h4><b>{{article.title}}</b></h4>


</div>


<div class="panel-body">



<article id="word-display" ng-bind-html="article.content | trustHtml">



</article>


</div>

</div>

javascript:

success(function(data){

$scope.articles = data;

});

myApp.filter('trustHtml',function($sce){


return function(input){



return $sce.trustAsHtml(input);


}

});

其中$sce是angularJS自带的安全处理模块,$sce.trustAsHtml(input)方法便是将数据内容以html的形式进行解析并返回。将此过滤器添加到ng-bind-html所绑定的数据中,便实现了在数据加载时对与html标签的自动转义。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript Math ceil()、floor()、round()三个函数的区别
Mar 09 Javascript
js事件(Event)知识整理
Oct 11 Javascript
两种方法基于jQuery实现IE浏览器兼容placeholder效果
Oct 14 Javascript
jQuery实现的支持IE的html滑动条
Mar 16 Javascript
Three.js的使用及绘制基础3D图形详解
Apr 27 Javascript
Angular 4依赖注入学习教程之简介(一)
Jun 04 Javascript
详解vue-router和vue-cli以及组件之间的传值
Jul 04 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
react-router browserHistory刷新页面404问题解决方法
Dec 29 Javascript
解决select2在bootstrap modal中不能正常使用的问题
Aug 09 Javascript
微信小程序实现两边小中间大的轮播效果的示例代码
Dec 07 Javascript
详解JavaScript的this指向和绑定
Sep 08 Javascript
JavaScript观察者模式(publish/subscribe)原理与实现方法
Mar 30 #Javascript
Angular.js去除页面中显示的空行方法示例
Mar 30 #Javascript
JavaScript实现父子dom同时绑定两个点击事件,一个用捕获,一个用冒泡时执行顺序的方法
Mar 30 #Javascript
vue2.0实现倒计时的插件(时间戳 刷新 跳转 都不影响)
Mar 30 #Javascript
JavaScript mixin实现多继承的方法详解
Mar 30 #Javascript
Angular.JS中的指令引用template与指令当做属性详解
Mar 30 #Javascript
jQuery源码解读之extend()与工具方法、实例方法详解
Mar 30 #jQuery
You might like
WinXP + Apache +PHP5 + MySQL + phpMyAdmin安装全功略
2006/07/09 PHP
php中文本数据翻页(留言本翻页)
2006/10/09 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
smarty内置函数config_load用法实例
2015/01/22 PHP
php Session无效分析资料整理
2016/11/29 PHP
使用laravel和ECharts实现折线图效果的例子
2019/10/09 PHP
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
jQuery 淡出一个图像到另一个图像的实现代码
2013/06/12 Javascript
使用jquery清空、复位整个输入域
2015/04/02 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
js编写三级联动简单案例
2016/12/21 Javascript
微信小程序 开发经验整理
2017/02/15 Javascript
javascript实现Java中的Map对象功能的实例详解
2017/08/21 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
Jquery实现获取子元素的方法分析
2019/08/24 jQuery
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
python发送伪造的arp请求
2014/01/09 Python
python正则表达式re模块详细介绍
2014/05/29 Python
python删除列表中重复记录的方法
2015/04/28 Python
对Python中列表和数组的赋值,浅拷贝和深拷贝的实例讲解
2018/06/28 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
深入理解Python 多线程
2020/06/16 Python
详解html5 canvas常用api总结(二)--绘图API
2016/12/14 HTML / CSS
美国全球旅游运营商:Pacific Holidays
2018/06/18 全球购物
亚洲领先的设计购物网站:Pinkoi
2020/11/26 全球购物
材料物理专业大学毕业生求职信
2013/10/15 职场文书
中秋节慰问信
2015/02/15 职场文书
2015年社会治安综合治理工作总结
2015/04/10 职场文书
在校证明模板
2015/06/17 职场文书
汽车销售员工作总结
2015/08/12 职场文书
手把手教你用SpringBoot将文件打包成zip存放或导出
2021/06/11 Java/Android
用python基于appium模块开发一个自动收取能量的小助手
2021/09/25 Python
VUE之图片Base64编码使用ElementUI组件上传
2022/04/09 Vue.js