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


相关推荐: Laravel路由Route怎么设置_Laravel基础路由定义与参数传递规则【详解】  php结合redis实现高并发下的抢购、秒杀功能的实例  成都网站制作公司哪家好,四川省职工服务网是做什么用?  如何自定义建站之星网站的导航菜单样式?  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  如何在 Pandas 中基于一列条件计算另一列的分组均值  Laravel PHP版本要求一览_Laravel各版本环境要求对照  Laravel如何使用软删除(Soft Deletes)功能_Eloquent软删除与数据恢复方法  LinuxCD持续部署教程_自动发布与回滚机制  详解Nginx + Tomcat 反向代理 负载均衡 集群 部署指南  海南网站制作公司有哪些,海口网是哪家的?  如何快速查询域名建站关键信息?  香港服务器租用费用高吗?如何避免常见误区?  Laravel集合Collection怎么用_Laravel集合常用函数详解  Python文件异常处理策略_健壮性说明【指导】  矢量图网站制作软件,用千图网的一张矢量图做公司app首页,该网站并未说明版权等问题,这样做算不算侵权?应该如何解决?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  5种Android数据存储方式汇总  JavaScript 输出显示内容(document.write、alert、innerHTML、console.log)  高端智能建站公司优选:品牌定制与SEO优化一站式服务  怎样使用JSON进行数据交换_它有什么限制  企业网站制作这些问题要关注  如何快速建站并高效导出源代码?  北京企业网站设计制作公司,北京铁路集团官方网站?  如何在阿里云通过域名搭建网站?  如何在IIS7上新建站点并设置安全权限?  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?  如何在腾讯云免费申请建站?  韩国服务器如何优化跨境访问实现高效连接?  如何彻底卸载建站之星软件?  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  手机网站制作与建设方案,手机网站如何建设?  ,交易猫的商品怎么发布到网站上去?  Laravel如何获取当前登录用户信息_Laravel Auth门面使用与Session用户读取【技巧】  C#如何调用原生C++ COM对象详解  Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】  javascript读取文本节点方法小结  创业网站制作流程,创业网站可靠吗?  Laravel如何发送系统通知?(Notification渠道示例)  公司网站制作价格怎么算,公司办个官网需要多少钱?  Laravel API资源类怎么用_Laravel API Resource数据转换  Java Adapter 适配器模式(类适配器,对象适配器)优缺点对比  Laravel请求验证怎么写_Laravel Validator自定义表单验证规则教程  制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?  深圳网站制作设计招聘,关于服装设计的流行趋势,哪里的资料比较全面?  Laravel如何实现本地化和多语言支持_Laravel多语言配置与翻译文件管理  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  网站制作大概要多少钱一个,做一个平台网站大概多少钱?