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关于select的相关操作说明
Jan 13 Javascript
event对象获取方法总结在google浏览器下测试
Nov 03 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
Sep 03 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
Dec 01 Javascript
jQuery validate插件实现ajax验证重复的2种方法
Jan 22 Javascript
JavaScript实现实时更新系统时间的实例代码
Apr 04 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
May 22 Javascript
vue2项目使用sass的示例代码
Jun 28 Javascript
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
Jul 04 Javascript
JavaScript原型式继承实现方法
Nov 06 Javascript
JS Ajax请求会话过期处理问题解决方法分析
Nov 16 Javascript
jquery实现垂直手风琴导航栏
Feb 18 jQuery
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
上海地方志办公室-上海电子仪表工业志
2021/03/04 无线电
ThinkPHP表单数据智能写入create方法实例分析
2015/09/27 PHP
php版微信公众账号第三方管理工具开发简明教程
2016/09/23 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
jquery清空textarea等输入框实现代码
2013/04/22 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
Node.js模块加载详解
2014/08/16 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
2016/06/25 Javascript
js控住DOM实现发布微博效果
2016/08/30 Javascript
详解基于vue的移动web app页面缓存解决方案
2017/08/03 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
js实现图片粘贴上传到服务器并展示的实例
2017/11/08 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
详细解读Python中解析XML数据的方法
2015/10/15 Python
Python 3中print函数的使用方法总结
2017/08/08 Python
Python Web框架之Django框架Form组件用法详解
2019/08/16 Python
Django数据库操作之save与update的使用
2020/04/01 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
Python -m参数原理及使用方法解析
2020/08/21 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
html5 video全屏播放/自动播放的实现示例
2020/08/06 HTML / CSS
轻松制作精彩视频:Animoto
2018/09/19 全球购物
协会周年庆活动方案
2014/08/26 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
大学生村官工作总结2015
2015/04/09 职场文书
小学生手册家长意见
2015/06/03 职场文书
八一建军节主持词
2015/07/01 职场文书
Python使用protobuf序列化和反序列化的实现
2021/05/19 Python