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 带有滚动条的表格,标题固定,带排序功能.
Nov 13 Javascript
Moment.js 不容错过的超棒Javascript日期处理类库
Apr 15 Javascript
jquery submit ie6下失效的原因分析及解决方法
Nov 15 Javascript
浅谈JavaScript 框架分类
Nov 10 Javascript
js倒计时显示实例
Dec 11 Javascript
原生JS实现N级菜单的代码
May 21 Javascript
react-native ListView下拉刷新上拉加载实现代码
Aug 03 Javascript
vue router-link传参以及参数的使用实例
Nov 10 Javascript
JS中DOM元素的attribute与property属性示例详解
Sep 04 Javascript
React 源码中的依赖注入方法
Nov 07 Javascript
使用react context 实现vue插槽slot功能
Jul 18 Javascript
详解vue-property-decorator使用手册
Jul 29 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中通过数组进行高效随机抽取指定条记录的算法
2013/09/09 PHP
PHP二维数组排序的3种方法和自定义函数分享
2014/04/09 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
PHP迭代器和迭代的实现与使用方法分析
2018/04/19 PHP
通过jquery实现tab标签浏览效果
2007/02/20 Javascript
js获取单元格自定义属性值的代码(IE/Firefox)
2010/04/05 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
jquery对元素拖动排序示例
2014/01/16 Javascript
jquery 构造函数在表单提交过程中修改数据
2015/05/25 Javascript
jQuery解析XML文件同时动态增加js文件的方法
2015/06/01 Javascript
js实现文本框输入文字个数限制代码
2015/12/25 Javascript
JS及PHP代码编写八大排序算法
2016/07/12 Javascript
Javascript使用uploadify来实现多文件上传
2016/11/16 Javascript
详解webpack自动生成html页面
2017/06/29 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
2019/05/22 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
2019/07/09 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
Python安装pycurl失败的解决方法
2018/10/15 Python
Python 新建文件夹与复制文件夹内所有内容的方法
2018/10/27 Python
python去除拼音声调字母,替换为字母的方法
2018/11/28 Python
Pytorch之parameters的使用
2019/12/31 Python
python中的itertools的使用详解
2020/01/13 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
python excel多行合并的方法
2020/12/09 Python
美国批发供应商:Kole Imports
2019/04/10 全球购物
英国领先的独立时装店:Van Mildert
2019/10/28 全球购物
俄罗斯马克西多姆家居用品网上商店:Максидом
2020/02/06 全球购物
厂办主管岗位职责范本
2014/02/28 职场文书
关于青春的演讲稿
2014/05/05 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
2015年“7.11”世界人口日宣传活动方案
2015/05/06 职场文书
《老人与海鸥》教学反思
2016/02/16 职场文书
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫
html用代码制作虚线框怎么做? dw制作虚线圆圈的技巧
2022/12/24 HTML / CSS