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 常用函数库详解
Oct 21 Javascript
推荐8款jQuery轻量级树形Tree插件
Nov 12 Javascript
简介AngularJS中$http服务的用法
Feb 06 Javascript
Bootstrap 网格系统布局详解
Mar 19 Javascript
node.js 用socket实现聊天的示例代码
Oct 17 Javascript
写一个移动端惯性滑动&amp;回弹Vue导航栏组件 ly-tab
Mar 06 Javascript
Angular2实现的秒表及改良版示例
May 10 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
js函数和this用法实例分析
Mar 13 Javascript
webpack安装配置与常见使用过程详解(结合vue)
Jun 01 Javascript
纯JS开发baguetteBox.js响应式画廊插件
Jun 28 Javascript
nuxt 每个页面head标签内容设置方式
Nov 05 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
php魔术变量用法实例详解
2014/11/13 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
Laravel SQL语句记录方式(推荐)
2016/05/26 PHP
JS中getYear()和getFullYear()区别分析
2014/07/04 Javascript
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
三种AngularJS中获取数据源的方式
2016/02/02 Javascript
Bootstrap table分页问题汇总
2016/05/30 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
利用jQuery+localStorage实现一个简易的计时器示例代码
2017/12/25 jQuery
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
element ui table 增加筛选的方法示例
2018/11/02 Javascript
vue实现按需加载组件及异步组件功能
2019/05/27 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
微信小程序实现选项卡滑动切换
2020/10/22 Javascript
python中模块的__all__属性详解
2017/10/26 Python
python使用Tkinter实现在线音乐播放器
2018/01/30 Python
对Python中9种生成新对象的方法总结
2018/05/23 Python
python中datetime模块中strftime/strptime函数的使用
2018/07/03 Python
python实现三次样条插值
2018/12/17 Python
详解Python计算机视觉 图像扭曲(仿射扭曲)
2019/03/27 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
CSS3制作圆形滚动进度条动画的示例
2020/11/05 HTML / CSS
Html5原创俄罗斯方块(基于canvas)
2019/01/07 HTML / CSS
社区庆八一活动方案
2014/02/02 职场文书
服装创业计划书范文
2014/02/05 职场文书
中考标语大全
2014/06/05 职场文书
一份恶作剧的检讨书
2014/09/13 职场文书
党员对照检查剖析材料
2014/10/13 职场文书
新闻稿怎么写
2015/07/18 职场文书
网络营销实训总结
2015/08/03 职场文书
2016幼儿园新学期寄语
2015/12/03 职场文书
什么是求职信?求职信应包含哪些内容?
2019/08/14 职场文书