详解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 Autocomplete 结合asp.net使用要点
Oct 29 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
Oct 21 Javascript
常用js字符串判断方法整理
Oct 18 Javascript
JavaScript表单通过正则表达式验证电话号码
Mar 14 Javascript
轻松掌握JavaScript单例模式
Aug 25 Javascript
微信开发 微信授权详解
Oct 21 Javascript
angularjs $http实现form表单提交示例
Jun 09 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
小程序图片剪裁加旋转的示例代码
Jul 10 Javascript
小程序云开发之用户注册登录
May 18 Javascript
vue中watch和computed的区别与使用方法
Aug 23 Javascript
vue使用watch监听属性变化
Apr 30 Vue.js
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数组操作汇总 php数组的使用技巧
2011/07/17 PHP
php+mysql不用递归实现的无限级分类实例(非递归)
2014/07/08 PHP
php禁用cookie后session设置方法分析
2016/10/19 PHP
PHP基于Closure类创建匿名函数的方法详解
2017/08/17 PHP
jQuery ajax serialize()方法的使用以及常见问题解决
2013/01/27 Javascript
javascript实现点击提交按钮后显示loading的方法
2015/07/03 Javascript
基于jQuery实现动态搜索显示功能
2016/05/05 Javascript
Bootstrap carousel轮转图的使用实例详解
2016/05/17 Javascript
Bootstrap开发中Tab标签页切换图表显示问题的解决方法
2018/07/13 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
Vue实现简单计算器案例
2020/02/25 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
JavaScript中跨域问题的深入理解
2021/03/04 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
Python对文件和目录进行操作的方法(file对象/os/os.path/shutil 模块)
2017/05/08 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
Python中表示字符串的三种方法
2017/09/06 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
Python框架Flask的基本数据库操作方法分析
2018/07/13 Python
Python语法分析之字符串格式化
2019/06/13 Python
Python时间序列缺失值的处理方法(日期缺失填充)
2019/08/11 Python
Python3使用PySynth制作音乐的方法
2019/09/09 Python
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
八年级音乐教学反思
2014/01/09 职场文书
领导干部考察材料
2014/02/08 职场文书
领导接待方案
2014/03/13 职场文书
田径运动会开幕式及主持词
2014/03/28 职场文书
竞选生活委员演讲稿
2014/04/28 职场文书
小学绿色学校申报材料
2014/08/23 职场文书
公司行政专员岗位职责
2014/08/24 职场文书
软件研发工程师岗位职责
2014/09/30 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
财务经理岗位职责范本
2015/04/08 职场文书
活动宣传稿范文
2015/07/23 职场文书
python的变量和简单数字类型详解
2021/09/15 Python
mysql insert 存在即不插入语法说明
2022/03/25 MySQL