详解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 相关文章推荐
基于jQuery的获取标签名的代码
Jul 16 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
Apr 01 Javascript
Jquery实现控件的隐藏和显示实例
Feb 08 Javascript
基于JavaScript创建动态Dom
Dec 08 Javascript
简介BootStrap model弹出框的使用
Apr 27 Javascript
基于Vue2的移动端开发环境搭建详解
Nov 03 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
Mar 24 jQuery
RequireJS用法简单示例
Aug 20 Javascript
js中怎么判断两个字符串相等的实例
Jan 17 Javascript
微信小程序 select 下拉框组件功能
Sep 09 Javascript
VUE+elementui面包屑实现动态路由详解
Nov 04 Javascript
Vue中fragment.js使用方法小结
Feb 17 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
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
php导入导出excel实例
2013/10/25 PHP
php使用curl和正则表达式抓取网页数据示例
2014/04/13 PHP
PHP中include和require的区别实例分析
2017/05/07 PHP
PHP文字转图片功能原理与实现方法分析
2017/08/31 PHP
JS复制到剪贴板示例代码
2013/10/30 Javascript
JS实现控制表格行文本对齐的方法
2015/03/30 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
原生javascript实现的一个简单动画效果
2016/03/30 Javascript
jQuery设置单选按钮radio选中/不可用的实例代码
2016/06/24 Javascript
vue插件tab选项卡使用小结
2016/10/27 Javascript
jQuery Validate格式验证功能实例代码(包括重名验证)
2017/07/18 jQuery
js设置默认时间跨度过程详解
2019/07/17 Javascript
压缩Vue.js打包后的体积方法总结(Vue.js打包后体积过大问题)
2020/02/03 Javascript
Vue基于iview实现登录密码的显示与隐藏功能
2020/03/06 Javascript
全面理解Python中self的用法
2016/06/04 Python
Python爬虫包 BeautifulSoup  递归抓取实例详解
2017/01/28 Python
使用PyV8在Python爬虫中执行js代码
2017/02/16 Python
Python中装饰器兼容加括号和不加括号的写法详解
2017/07/05 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Python聊天室程序(基础版)
2018/04/01 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
pycharm编写spark程序,导入pyspark包的3中实现方法
2019/08/02 Python
Flask框架学习笔记之消息提示与异常处理操作详解
2019/08/15 Python
Python远程方法调用实现过程解析
2020/07/28 Python
css3隔行变换色实现示例
2014/02/19 HTML / CSS
电大自我鉴定
2013/10/27 职场文书
工商治理实习生的自我评价分享
2014/02/20 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
Win11局域网共享权限在哪里设置? Win11高级共享的设置技巧
2022/04/05 数码科技
Python OpenCV实现图像模板匹配详解
2022/04/07 Python
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS
Go语言编译原理之变量捕获
2022/08/05 Golang