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 相关文章推荐
JS效率个人经验谈(8-15更新),加入range技巧
Jan 09 Javascript
jquery 元素相对定位代码
Oct 15 Javascript
原生javascript实现Tab选项卡切换功能
Jan 12 Javascript
Javascript实现多彩雪花从天降散落效果的方法
Feb 02 Javascript
jquery实现增加删除行的方法
Feb 03 Javascript
JS 作用域与作用域链详解
Apr 07 Javascript
JS实现兼容各浏览器解析XML文档数据的方法
Jun 01 Javascript
浅析jQuery中使用$所引发的问题
May 29 Javascript
Chrome不支持showModalDialog模态对话框和无法返回returnValue问题的解决方法
Oct 30 Javascript
jQuery层级选择器实例代码
Feb 06 Javascript
vue history 模式打包部署在域名的二级目录的配置指南
Jul 02 Javascript
js实现适配移动端的拖动效果
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
PHP执行速率优化技巧小结
2008/03/15 PHP
PHP使用strstr()函数获取指定字符串后所有字符的方法
2016/01/07 PHP
PHP异步进程助手async-helper
2018/02/05 PHP
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
jQuery 滑动方法slideDown向下滑动元素
2014/01/16 Javascript
javascript实现带节日和农历的日历特效
2015/02/01 Javascript
JS+CSS实现的简单折叠展开多级菜单效果
2015/09/12 Javascript
JavaScript实现简单Tip提示框效果
2016/04/20 Javascript
使用Javascript监控前端相关数据的代码
2016/10/27 Javascript
性能优化之代码优化页面加载速度
2017/03/01 Javascript
详解Vue.js搭建路由报错 router.map is not a function
2017/06/27 Javascript
vue引入ueditor及node后台配置详解
2018/01/03 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
Javascript原生ajax请求代码实例
2020/02/20 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
Vue 样式切换及三元判断样式关联操作
2020/08/09 Javascript
Python导出DBF文件到Excel的方法
2015/07/25 Python
python下实现二叉堆以及堆排序的示例
2017/09/29 Python
Python使用PIL模块生成随机验证码
2017/11/21 Python
Python获取命令实时输出-原样彩色输出并返回输出结果的示例
2019/07/11 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
vscode写python时的代码错误提醒和自动格式化的方法
2020/05/07 Python
python eventlet绿化和patch原理
2020/11/21 Python
CSS3实例分享--超炫checkbox复选框和radio单选框
2014/09/01 HTML / CSS
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
美国在线轮胎零售商:SimpleTire
2019/04/08 全球购物
大学班级计划书
2014/04/29 职场文书
电子信息专业应届生自荐信
2014/06/04 职场文书
党员一帮一活动总结
2014/07/08 职场文书
财务整改报告范文
2014/11/05 职场文书
三方协议书
2015/01/27 职场文书
办公用品质量保证书
2015/05/11 职场文书
有关三国演义的读书笔记
2015/06/25 职场文书
怎样写好工作计划
2019/04/10 职场文书