详解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拖拽 &amp; 弹出层 介绍与示例
Dec 27 Javascript
js匿名函数的调用示例(形式多种多样)
Aug 20 Javascript
javascript比较两个日期相差天数的方法
Jul 24 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
jQuery获取this当前对象子元素对象的方法
Nov 29 Javascript
Vue生命周期示例详解
Apr 12 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
Feb 06 Javascript
Vue.js自定义事件的表单输入组件方法
Mar 08 Javascript
vue iview组件表格 render函数的使用方法详解
Mar 15 Javascript
Vue+element 解决浏览器自动填充记住的账号密码问题
Jun 11 Javascript
微信小程序页面滚动到指定位置代码实例
Sep 07 Javascript
antd 表格列宽自适应方法以及错误处理操作
Oct 27 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
mysql 全文搜索 技巧
2007/04/27 PHP
解析PHP中$_FILES的使用以及注意事项
2013/07/05 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
2018/05/21 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
用正则表达式替换图片地址img标签
2013/11/22 Javascript
javascript获取当前鼠标坐标的方法
2015/01/10 Javascript
使用js画图之画切线
2015/01/12 Javascript
javascript实现博客园页面右下角返回顶部按钮
2015/02/22 Javascript
js实现简单选项卡与自动切换效果的方法
2015/04/10 Javascript
jQuery事件绑定on()、bind()与delegate() 方法详解
2015/06/03 Javascript
微信小程序 教程之数据绑定
2016/10/18 Javascript
jQuery animate()实现背景色渐变效果的处理方法【使用jQuery.color.js插件】
2017/03/15 Javascript
JavaScript使用readAsDataUrl方法预览图片
2017/05/10 Javascript
详解VUE 定义全局变量的几种实现方式
2017/06/01 Javascript
原生js实现简单的焦点图效果实例
2017/12/14 Javascript
使用electron将vue-cli项目打包成exe的方法
2018/09/29 Javascript
JS this关键字在ajax中使用出现问题解决方案
2020/07/17 Javascript
Python采用socket模拟TCP通讯的实现方法
2014/11/19 Python
python 解决动态的定义变量名,并给其赋值的方法(大数据处理)
2018/11/10 Python
python 调用有道api接口的方法
2019/01/03 Python
python Gunicorn服务器使用方法详解
2019/07/22 Python
如何利用pygame实现简单的五子棋游戏
2019/12/29 Python
使用Tensorboard工具查看Loss损失率
2020/02/15 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
利用Python优雅的登录校园网
2020/10/21 Python
东南亚排名第一的服务市场:kaodim
2019/03/28 全球购物
酒店营销策划方案
2014/02/07 职场文书
怎么写好自荐书
2014/03/02 职场文书
民主评议党员登记表自我评价
2014/10/20 职场文书
论群众路线学习笔记
2014/11/06 职场文书
大学生敬老院活动总结
2015/05/07 职场文书
2015年语文教师工作总结
2015/05/25 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
Python Matplotlib绘制动画的代码详解
2022/05/30 Python