angularjs中ng-bind-html的用法总结


Posted in Javascript onMay 23, 2017

本篇主要讲解angular中的$sanitize这个服务.此服务依赖于ngSanitize模块.(这个模块需要加载angular-sanitize.js插件)

要学习这个服务,先要了解另一个指令: ng-bing-html.

顾名思义,ng-bind-html和ng-bind的区别就是,ng-bind把值作为字符串,和元素的内容进行绑定,但是ng-bind-html把值作为html,和元素的html进行绑定.相当于jq里面的.text()和.html().

但是,出于安全考虑,如果我们直接使用ng-bind-html是会报错的,ng-bind-html后面的内容必须经过一定的处理.

处理的方式有两种,一种是使用$sce服务,另一种就是使用$sanitize服务.$sce服务怎么用,在以后的文章中会独立讲解,这篇主要讲解$sanitize服务.

$sanitize会根绝一个白名单来净化html标签.这样,不安全的内容就不会被返回. 白名单是根据$compileProvider的aHrefSanitizationWhitelist和imgSrcSanitizationWhitelist函数得到的.

看一个栗子:

html:

<!DOCTYPE html>
<html ng-app="myApp">
<head>
 <title></title>
 <meta charset="utf-8">
 <script src="../angular-1.3.2.js"></script>
 <script src="angular-sanitize.min.js"></script>
 <script src="script.js"></script>
 <link type="text/css" href="../bootstrap.css" rel="external nofollow" rel="stylesheet" />
</head>
<body>
<div class="container" ng-controller="ctrl"> 
<div ng-bind-html="trustHtml"></div>
</div> 

</body> 

</html>

js:

var app =angular.module(‘myApp‘,[‘ngSanitize‘]);
app.controller(‘ctrl‘,function($scope,$sce){
  $scope.myHtml = ‘<p style="color:blue">an html\n‘ +
  ‘<em onclick="this.textContent=\‘code_bunny\‘">click here</em>\n‘ +
  ‘snippet</p>‘;
  $scope.trustHtml = $sce.trustAsHtml($scope.myHtml)
});

这样,在div内就能加载上带有html标签的内容,标签的属性以及绑定在元素上的事件都会被保留。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery 关键字“拖曳搜索”之“拖曳”以及 图片“提示自适应放大”效果 的实现
Apr 18 Javascript
js 数值项目的格式化函数代码
May 14 Javascript
网站页面自动跳转实现方法PHP、JSP(下)
Aug 01 Javascript
Egret引擎开发指南之创建项目
Sep 03 Javascript
jQuery实现购物车计算价格功能的方法
Mar 25 Javascript
jQuery对象的链式操作用法分析
May 10 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
Bootstrap时间选择器datetimepicker和daterangepicker使用实例解析
Sep 17 Javascript
js中的eval()函数把含有转义字符的字符串转换成Object对象的方法
Dec 02 Javascript
vue项目中用cdn优化的方法
Jan 03 Javascript
layer弹出层显示在top顶层的方法
Sep 11 Javascript
vue+koa2搭建mock数据环境的详细教程
May 18 Javascript
vue.js实现价格格式化的方法
May 23 #Javascript
js编写选项卡效果
May 23 #Javascript
jQuery日期范围选择器附源码下载
May 23 #jQuery
详解JavaScript数组过滤相同元素的5种方法
May 23 #Javascript
强大的 Angular 表单验证功能详细介绍
May 23 #Javascript
微信小程序 侧滑删除(左滑删除)
May 23 #Javascript
最常用的jQuery表单验证(简单)
May 23 #jQuery
You might like
一个ftp类(ini.php)
2006/10/09 PHP
通用PHP动态生成静态HTML网页的代码
2010/03/04 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
解析argc argv在php中的应用
2013/06/24 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
带你了解PHP7 性能翻倍的关键
2015/11/19 PHP
JavaScript对象、属性、事件手册集合方便查询
2010/07/04 Javascript
利用CSS、JavaScript及Ajax实现高效的图片预加载
2013/10/16 Javascript
使用Sticker.js实现贴纸效果
2015/01/28 Javascript
Jquery中Event对象属性小结
2015/02/27 Javascript
JS+CSS实现可以凹陷显示选中单元格的方法
2015/03/02 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
js限制input标签中只能输入中文
2015/06/26 Javascript
JS版元素周期表实现方法
2015/08/05 Javascript
animate 实现滑动切换效果【实例代码】
2016/05/05 Javascript
javaScript+turn.js实现图书翻页效果实例代码
2017/02/16 Javascript
Angular中ng-bind和ng-model的区别实例详解
2017/04/10 Javascript
浅析从vue源码看观察者模式
2018/01/29 Javascript
Vue中使用Sortable的示例代码
2018/04/07 Javascript
antdesign-vue结合sortablejs实现两个table相互拖拽排序功能
2021/01/08 Vue.js
使用cx_freeze把python打包exe示例
2014/01/24 Python
Python读取网页内容的方法
2015/07/30 Python
Python实现多并发访问网站功能示例
2017/06/19 Python
python 简单的绘图工具turtle使用详解
2017/06/21 Python
使用pandas对两个dataframe进行join的实例
2018/06/08 Python
Python改变对象的字符串显示的方法
2020/08/01 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
UNIX文件系统分类
2014/11/11 面试题
材料加工硕士生求职信
2013/10/10 职场文书
个人自我评价分享
2013/12/20 职场文书
师范大学生求职信
2014/06/13 职场文书
论群众路线学习心得体会
2014/10/31 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
高三数学教学反思
2016/02/18 职场文书
详解vue身份认证管理和租户管理
2021/05/25 Vue.js