详解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 相关文章推荐
“不能执行已释放的Script代码”错误的原因及解决办法
Sep 09 Javascript
javascript实现将文件保存到本地方法汇总
Jul 26 Javascript
javascript实现图片延迟加载方法汇总(三种方法)
Aug 27 Javascript
javascript常用函数(1)
Nov 04 Javascript
JavaScript观察者模式(经典)
Dec 09 Javascript
详解Angularjs 如何自定义Img的ng-load 事件
Feb 15 Javascript
JS实现简单表格排序操作示例
Oct 07 Javascript
不使用 JS 匿名函数理由
Nov 17 Javascript
jQuery实现ajax回调函数带入参数的方法示例
Jun 26 jQuery
angular2组件中定时刷新并清除定时器的实例讲解
Aug 31 Javascript
微信小程序点击滚动到指定位置的实现
May 22 Javascript
Openlayers实现距离面积测量
Sep 28 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php实现以只读方式打开文件的方法
2015/03/16 PHP
PHP检测用户语言的方法
2015/06/15 PHP
PHP实现的分解质因数操作示例
2018/08/01 PHP
PHP类与对象后期静态绑定操作实例详解
2018/12/20 PHP
linux mint下安装phpstorm2020包括JDK部分的教程详解
2020/09/17 PHP
基于jQuery的消息提示插件之旅 DivAlert(三)
2010/04/01 Javascript
JQuery扩展插件Validate 2通过参数设置验证规则
2011/09/05 Javascript
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
JavaScript中实现PHP的打乱数组函数shuffle实例
2014/10/11 Javascript
javascript中setTimeout和setInterval的unref()和ref()用法示例
2014/11/26 Javascript
Js中使用hasOwnProperty方法检索ajax响应对象的例子
2014/12/08 Javascript
jquery插件格式实例分析
2016/06/16 Javascript
JavaScript实现相册弹窗功能(zepto.js)
2016/06/21 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
js中window.open的参数及注意注意事项
2016/07/06 Javascript
深入对Vue.js $watch方法的理解
2017/03/20 Javascript
微信小程序实现滴滴导航tab切换效果
2018/07/24 Javascript
Electron-vue开发的客户端支付收款工具的实现
2019/05/24 Javascript
Vue实现可移动水平时间轴
2020/06/29 Javascript
基于原生js实现判断元素是否有指定class名
2020/07/11 Javascript
详解Python函数作用域的LEGB顺序
2016/05/14 Python
pytorch 实现在预训练模型的 input上增减通道
2020/01/06 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
仓库主管的岗位职责
2013/12/04 职场文书
运动会四百米广播稿
2014/01/19 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
优秀信贷员先进事迹
2014/01/31 职场文书
2014年仓库工作总结
2014/11/20 职场文书
2015年客服工作总结范文
2015/04/02 职场文书
走进毛泽东观后感
2015/06/04 职场文书
Nginx解决403 forbidden的完整步骤
2021/04/01 Servers
用Python的绘图库(matplotlib)绘制小波能量谱
2021/04/17 Python
详解JVM系列之内存模型
2021/06/10 Javascript