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 相关文章推荐
javascript+mapbar实现地图定位
Apr 09 Javascript
关于firefox的ElementTraversal 接口 使用说明
Nov 11 Javascript
jquery防止重复执行动画避免页面混乱
Apr 22 Javascript
一个支持任意尺寸的图片上下左右滑动效果
Aug 24 Javascript
$(&quot;&quot;).click与onclick的区别示例介绍
Sep 25 Javascript
JQuery勾选指定name的复选框集合并显示的方法
May 18 Javascript
js实现简洁的TAB滑动门效果代码
Sep 06 Javascript
JS使用onerror捕获异常示例
Aug 03 Javascript
PHP捕捉异常中断的方法
Oct 24 Javascript
JS使用正则实现去掉字符串左右空格的方法
Dec 27 Javascript
微信小程序按钮去除边框线分享页面功能
Aug 27 Javascript
微信小程序canvas截取任意形状的实现代码
Jan 13 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
2011/10/31 PHP
php获取json数据所有的节点路径
2015/05/17 PHP
如何打开php的gd2库
2017/02/09 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
jquery each()源代码
2011/02/14 Javascript
jQuery动态添加删除select项(实现代码)
2013/09/03 Javascript
javascript判断两个IP地址是否在同一个网段的实现思路
2013/12/13 Javascript
离开当前页面前使用js判断条件提示是否要离开页面
2014/05/02 Javascript
简单的jquery左侧导航栏和页面选中效果
2014/08/21 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
2016/08/01 Javascript
在线引用最新jquery文件的实现方法
2016/08/26 Javascript
jQuery视差滚动效果网页实现方法经验总结
2016/09/29 Javascript
JavaScript事件用法浅析
2016/10/31 Javascript
解析JavaScript模仿块级作用域
2016/12/29 Javascript
利用jquery正则表达式在页面验证url网址输入是否正确
2017/04/04 jQuery
iscroll-probe实现下拉刷新和下拉加载效果
2017/06/28 Javascript
js推箱子小游戏步骤代码解析
2018/01/10 Javascript
基于JavaScript实现一个简单的Vue
2018/09/26 Javascript
js中的数组对象排序分析
2018/12/11 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
python 中的divmod数字处理函数浅析
2017/10/17 Python
Python之csv文件从MySQL数据库导入导出的方法
2018/06/21 Python
python内存动态分配过程详解
2019/07/15 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
2017/10/16 HTML / CSS
阿根廷在线宠物商店:Puppis
2018/03/23 全球购物
工程造价专业大学生自荐信
2013/10/01 职场文书
浙大毕业生自荐信
2014/01/26 职场文书
2015年志愿者服务工作总结
2015/04/20 职场文书
保险公司岗前培训工作总结
2015/10/24 职场文书