angularjs中ng-bind-html的用法总结

发布时间 - 2026-01-11 01:15:32    点击率:

本篇主要讲解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标签的内容,标签的属性以及绑定在元素上的事件都会被保留。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# ng  # bind  # html  # angular  # html使用指令  # angularjs中使用ng-bind-html和ng-include的实例  # 深入理解AngularJS中的ng-bind-html指令  # 深入理解AngularJS中的ng-bind-html指令和$sce服务  # AngularJS ng-bind-html 指令详解及实例代码  # 绑定  # 加载  # 就能  # 顾名思义  # 这篇  # 有两种  # 报错  # 要了  # 要学  # 不安全  # 中会  # 大家多多  # 单是  # 依赖于  # head  # pre  # imgSrcSanitizationWhitelist  # strong  # title  # myApp 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 谷歌Google入口永久地址_Google搜索引擎官网首页永久入口  阿里云网站搭建费用解析:服务器价格与建站成本优化指南  香港服务器选型指南:免备案配置与高效建站方案解析  Laravel集合Collection怎么用_Laravel集合常用函数详解  如何快速上传建站程序避免常见错误?  Laravel如何升级到最新版本?(升级指南和步骤)  Laravel如何发送系统通知?(Notification渠道示例)  Laravel怎么调用外部API_Laravel Http Client客户端使用  HTML透明颜色代码在Angular里怎么设置_Angular透明颜色使用指南【详解】  原生JS获取元素集合的子元素宽度实例  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  Laravel如何实现数据库事务?(DB Facade示例)  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  如何在万网自助建站中设置域名及备案?  如何在搬瓦工VPS快速搭建网站?  Laravel怎么实现模型属性的自动加密  极客网站有哪些,DoNews、36氪、爱范儿、虎嗅、雷锋网、极客公园这些互联网媒体网站有什么差异?  原生JS实现图片轮播切换效果  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  如何快速登录WAP自助建站平台?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  网站设计制作书签怎么做,怎样将网页添加到书签/主页书签/桌面?  网站制作免费,什么网站能看正片电影?  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  Laravel怎么清理缓存_Laravel optimize clear命令详解  高性能网站服务器部署指南:稳定运行与安全配置优化方案  Python并发异常传播_错误处理解析【教程】  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法  如何在HTML表单中获取用户输入并用JavaScript动态控制复利计算循环  如何用西部建站助手快速创建专业网站?  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  七夕网站制作视频,七夕大促活动怎么报名?  5种Android数据存储方式汇总  如何在腾讯云服务器上快速搭建个人网站?  php后缀怎么变mp4格式错误_修改扩展名提示格式不对怎么办【技巧】  Laravel如何实现邮件验证激活账户_Laravel内置MustVerifyEmail接口配置【步骤】  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  JavaScript如何实现音频处理_Web Audio API如何工作?  如何安全更换建站之星模板并保留数据?  HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】  网站页面设计需要考虑到这些问题  Angular 表单中正确绑定输入值以确保提交与验证正常工作  HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】  Laravel如何记录自定义日志?(Log频道配置)  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  Laravel如何配置中间件Middleware_Laravel自定义中间件拦截请求与权限校验【步骤】  如何用PHP快速搭建CMS系统?  如何快速搭建支持数据库操作的智能建站平台?