详解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 相关文章推荐
JS中令人发指的valueOf方法介绍
Feb 22 Javascript
JQuery做的一个简单的点灯游戏分享
Jul 16 Javascript
node.js中的fs.fchownSync方法使用说明
Dec 16 Javascript
javascript实现瀑布流自适应遇到的问题及解决方案
Jan 28 Javascript
不得不分享的JavaScript常用方法函数集(下)
Dec 25 Javascript
谈一谈javascript中继承的多种方式
Feb 19 Javascript
利用jquery制作滚动到指定位置触发动画
Mar 26 Javascript
ES6生成器用法实例分析
Apr 10 Javascript
vue做移动端适配最佳解决方案(亲测有效)
Sep 04 Javascript
深入理解与使用keep-alive(配合router-view缓存整个路由页面)
Sep 25 Javascript
小程序:授权、登录、session_key、unionId的详解
May 15 Javascript
Vue编写可显示周和月模式的日历 Vue自定义日历内容的显示
Jun 26 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
PHP高自定义性安全验证码代码
2011/11/27 PHP
PHP 自定义错误处理函数的使用详解
2013/05/10 PHP
laravel 4安装及入门图文教程
2014/10/29 PHP
php微信公众号开发之秒杀
2018/10/20 PHP
在Laravel 中实现是否关注的示例
2019/10/22 PHP
JavaScript 类的定义和引用 JavaScript高级培训 自定义对象
2010/04/27 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
jQuery响应鼠标事件并隐藏与显示input默认值
2014/08/24 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
JavaScript黑洞数字之运算路线查找算法(递归算法)实例
2016/01/28 Javascript
JavaScript 对象字面量讲解
2016/06/06 Javascript
在javascript中使用com组件的简单实现方法
2016/08/17 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
js 只比较时间大小的实例
2017/10/26 Javascript
基于vue.js 2.x的虚拟滚动条的示例代码
2018/01/23 Javascript
Vue页面骨架屏注入方法
2018/05/13 Javascript
详解js模板引擎art template数组渲染的方法
2018/10/09 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
vue结合element-ui使用示例
2019/01/24 Javascript
layui递归实现动态左侧菜单
2019/07/26 Javascript
vue 解决provide和inject响应的问题
2020/11/12 Javascript
Python3.4编程实现简单抓取爬虫功能示例
2017/09/14 Python
python logging日志模块的详解
2017/10/29 Python
Python中property属性实例解析
2018/02/10 Python
Python通过属性手段实现只允许调用一次的示例讲解
2018/04/21 Python
对Python发送带header的http请求方法详解
2019/01/02 Python
浅谈python3.x pool.map()方法的实质
2019/01/16 Python
3行Python代码实现图像照片抠图和换底色的方法
2019/10/10 Python
python库matplotlib绘制坐标图
2019/10/18 Python
django自定义模板标签过程解析
2019/12/14 Python
暑假学习心得体会
2014/09/02 职场文书
农村党员学习党的群众路线教育实践活动心得体会
2014/11/04 职场文书
2014年工作总结及2015工作计划
2014/12/12 职场文书
2015年人力资源部工作总结
2015/04/30 职场文书
2016年情人节问候语
2015/11/11 职场文书
Anaconda配置各版本Pytorch的实现
2021/08/07 Python