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学习笔记之DOM对象和jQuery对象
Dec 22 Javascript
JavaScript高级程序设计(第3版)学习笔记 概述
Oct 11 Javascript
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
Mar 27 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
Jun 14 Javascript
更快的异步执行(setTimeout多浏览器)
Aug 12 Javascript
深入学习JavaScript对象
Oct 13 Javascript
js实现跨域的4种实用方法原理分析
Oct 29 Javascript
JavaScript基础知识及常用方法总结
Jan 10 Javascript
js实现纯前端的图片预览
Apr 27 Javascript
Jquery组件easyUi实现选项卡切换示例
Aug 23 Javascript
jQuery实现删除li节点的方法
Dec 06 Javascript
Windows下安装 node 的版本控制工具 nvm
Feb 06 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
模拟flock实现文件锁定
2007/02/14 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
Nginx实现反向代理
2017/09/20 Servers
GreyBox技术总结(转)
2010/11/23 Javascript
js原型链原理看图说明
2012/07/07 Javascript
jQuery之自动完成组件的深入解析
2013/06/19 Javascript
jQuery 获取浏览器所在的IP地址的小例子
2013/11/08 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
js中用cssText设置css样式的简单方法
2016/09/19 Javascript
Easyui在treegrid添加控件的实现方法
2017/06/23 Javascript
jQuery实现的弹幕效果完整实例
2017/09/06 jQuery
使用vue自定义指令开发表单验证插件validate.js
2019/05/23 Javascript
vue 内联样式style中的background用法说明
2020/08/05 Javascript
Python中列表(list)操作方法汇总
2014/08/18 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
Flask框架信号用法实例分析
2018/07/24 Python
pycharm运行出现ImportError:No module named的解决方法
2018/10/13 Python
Django框架自定义模型管理器与元选项用法分析
2019/07/22 Python
pytorch 共享参数的示例
2019/08/17 Python
numpy矩阵数值太多不能全部显示的解决
2020/05/14 Python
python 自定义异常和主动抛出异常(raise)的操作
2020/12/11 Python
Html5在手机端调用相机的方法实现
2020/05/13 HTML / CSS
Shoes For Crews法国官网:美国领先的防滑鞋设计和制造商
2018/01/01 全球购物
亚马逊新加坡官方网站:Amazon.sg
2020/03/25 全球购物
自荐书格式
2013/12/01 职场文书
学习十八届三中全会精神实施方案
2014/02/17 职场文书
个人贷款授权委托书样本
2014/10/07 职场文书
2015年社区综治工作总结
2015/04/21 职场文书
2015年宣传思想工作总结
2015/05/22 职场文书
毕业论文指导老师意见
2015/06/04 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
浅谈MySQL之select优化方案
2021/08/07 MySQL
《宝可梦》动画制作25周年到来 官方发布特别纪念视频
2022/04/01 日漫