详解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 04 Javascript
jQuery操作input值的各种方法总结
Nov 21 Javascript
经过绑定元素时会多次触发mouseover和mouseout事件
Feb 28 Javascript
Js实现滚动变色的文字效果
Jun 16 Javascript
基于JavaScript怎么实现让歌词滚动播放
Nov 03 Javascript
深入理解JS中的Function.prototype.bind()方法
Oct 11 Javascript
JS前端笔试题分析
Dec 19 Javascript
jQuery动态生成表格及右键菜单功能示例
Jan 13 Javascript
最常用的jQuery表单验证(简单)
May 23 jQuery
webpack 模块热替换原理
Apr 09 Javascript
JS返回页面时自动回滚到历史浏览位置
Sep 26 Javascript
JavaScript创建、读取和删除cookie
Sep 03 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
WAR3重制版DOTA 5V5初体验
2020/04/09 DOTA
php全角字符转换为半角函数
2014/02/07 PHP
YII2框架使用控制台命令的方法分析
2020/03/18 PHP
理解 JavaScript 预解析
2009/10/25 Javascript
javascipt:filter过滤介绍及使用
2014/09/10 Javascript
jQuery与JS加载事件用法分析
2016/09/04 Javascript
微信小程序开发之实现选项卡(窗口顶部TabBar)页面切换
2016/11/25 Javascript
深入学习jQuery中的data()
2016/12/22 Javascript
nodeJS实现路由功能实例代码
2017/06/08 NodeJs
动态统计当前输入内容的字节、字符数的实例详解
2017/10/27 Javascript
Vue2仿淘宝实现省市区三级联动
2020/04/15 Javascript
基于node打包可执行文件工具_Pkg使用心得分享
2018/01/24 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
《javascript设计模式》学习笔记四:Javascript面向对象程序设计链式调用实例分析
2020/04/07 Javascript
[01:09]DOTA2次级职业联赛 - 99战队宣传片
2014/12/01 DOTA
[48:48]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python使用suds调用webservice接口的方法
2019/01/03 Python
PyQt5使用QTimer实现电子时钟
2019/07/29 Python
TensorFlow获取加载模型中的全部张量名称代码
2020/02/11 Python
Python实现桌面翻译工具【新手必学】
2020/02/12 Python
PyCharm刷新项目(文件)目录的实现
2020/02/14 Python
Django 解决上传文件时,request.FILES为空的问题
2020/05/20 Python
python如何调用java类
2020/07/05 Python
python else语句在循环中的运用详解
2020/07/06 Python
python缩进长度是否统一
2020/08/02 Python
Superdry极度乾燥官网:日本街头风格,纯英国制造品牌
2016/10/31 全球购物
女性时尚在线:IVRose
2019/02/23 全球购物
俄罗斯便宜的在线服装商店:GroupPrice
2020/04/10 全球购物
李维斯牛仔裤荷兰官方网站:Levi’s NL
2020/08/23 全球购物
军校制空专业毕业生自我鉴定
2013/11/16 职场文书
经理管理专业毕业自荐书范文
2014/02/12 职场文书
党员群众路线剖析材料
2014/10/08 职场文书
教师外出学习心得体会
2016/01/18 职场文书
MySQL query_cache_type 参数与使用详解
2021/07/01 MySQL
关于PostgreSQL JSONB的匹配和交集问题
2021/09/14 PostgreSQL
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技