全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

深入理解AngularJS中的ng-bind-html指令

前言

在为html标签绑定数据的时,如果绑定的内容是纯文本,你可以使用{{}}或者ng-bind。但在为html标签绑定带html标签的内容的时候,angularjs为了安全考虑,不会将其渲染成html,而是将其当做文本直接在页面上展示。

先来看一个例子

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
 <script src="js/angular.min.js"></script>
 <script>
 angular.module("myapp", []).controller("MyController", function ($scope) {
 $scope.content = "<h1>Hello world.</h1>";
 $scope.txt = "Hello txt world";
 });
 </script>
</head>
<body ng-app="myapp">
 <div ng-controller="MyController">
 {{content}}
 <div ng-bind="content"></div> 
 </div>
</body>
</html>

输出

ng-bind-html指令

 <div ng-bind-html="content"></div>

这时就会出现安全的错误,如图:

但可以通过引入下面的模块,自动检测html的内容是否安全

 <script src="http://apps.bdimg.com/libs/angular.js/1.5.0-beta.0/angular-sanitize.min.js"></script>

 <script>
 angular.module("myapp", ["ngSanitize"]).controller("MyController", function ($scope) {
 $scope.content = "<h1>Hello world.</h1>";
 $scope.txt = "Hello txt world";
 });
 </script>

这时刷新预览

所以

ng-bind-html 指令是通一个安全的方式将内容绑定到 HTML 元素上。

当你想让 AngularJS 在你的应用中写入 HTML,你就需要去检测一些危险代码。通过在应用中引入 "angular-santize.js" 模块,使用 ngSanitize 函数来检测代码的安全性。 in your application you can do so by running the HTML code through the ngSanitize function.

另外一种处理方式

通过自定义过滤器,将带html标签的内容都当成安全的进行处理。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
 <script src="js/angular.min.js"></script>
 <!--<script src="http://apps.bdimg.com/libs/angular.js/1.5.0-beta.0/angular-sanitize.min.js"></script>-->
 <script>
 angular.module("myapp", []).controller("MyController", function ($scope) {
  $scope.content = "<h1>Hello world.</h1>";
  $scope.txt = "Hello txt world";
 }).filter("safeHtml", function ($sce) {
  return function (input) {
  //在这里可以对加载html渲染后进行特别处理。
  return $sce.trustAsHtml(input);
  };
 });
 </script>
</head>
<body ng-app="myapp">
 <div ng-controller="MyController">
 {{content}}
 <div ng-bind="content"></div> 
 <!--<div ng-bind-html="content"></div>-->
 <div ng-bind-html="content|safeHtml"></div>
 </div>
</body>
</html>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# angular  # ng  # bind  # html  # html怎么用  # angularjs  # ng指令  # angularjs中使用ng-bind-html和ng-include的实例  # 深入理解AngularJS中的ng-bind-html指令和$sce服务  # AngularJS ng-bind-html 指令详解及实例代码  # angularjs中ng-bind-html的用法总结  # 绑定  # 将其  # 就会  # 在这里  # 你可以  # 你就  # 当你  # 但在  # 可以通过  # 自定义  # 如图  # 这篇文章  # 想让  # 谢谢大家  # 以对  # 加载  # 有疑问  # head  # http  # org 


相关文章: 视频网站制作教程,怎么样制作优酷网的小视频?  建站之星云端配置指南:模板选择与SEO优化一键生成  建站DNS解析失败?如何正确配置域名服务器?  如何配置FTP站点权限与安全设置?  C#怎么使用委托和事件 C# delegate与event编程方法  保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?  如何选择高效稳定的ISP建站解决方案?  香港服务器网站搭建教程-电商部署、配置优化与安全稳定指南  如何在宝塔面板中创建新站点?  如何确认建站备案号应放置的具体位置?  如何快速搭建个人网站并优化SEO?  宠物网站制作html代码,有没有专门介绍宠物如何养的网站啊?  如何使用Golang table-driven基准测试_多组数据测量函数效率  定制建站是什么?如何实现个性化需求?  头像制作网站在线制作软件,dw网页背景图像怎么设置?  广东专业制作网站有哪些,广东省能源集团有限公司官网?  如何选择香港主机高效搭建外贸独立站?  建站之星安装路径如何正确选择及配置?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  阿里云网站制作公司,阿里云快速搭建网站好用吗?  如何选择PHP开源工具快速搭建网站?  网站制作公司排行榜,四大门户网站排名?  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  css网站制作参考文献有哪些,易聊怎么注册?  如何快速辨别茅台真假?关键步骤解析  小型网站制作HTML,*游戏网站怎么搭建?  建站主机如何选?高性价比方案全解析  外贸公司网站制作,外贸网站建设一般有哪些步骤?  建站主机与服务器功能差异如何区分?  如何配置支付宝与微信支付功能?  再谈Python中的字符串与字符编码(推荐)  香港服务器租用费用高吗?如何避免常见误区?  如何快速生成凡客建站的专业级图册?  大连网站制作公司哪家好一点,大连买房网站哪个好?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  青岛网站建设如何选择本地服务器?  如何通过PHP快速构建高效问答网站功能?  北京专业网站制作设计师招聘,北京白云观官方网站?  网站制作软件有哪些,制图软件有哪些?  制作营销网站公司,淘特是干什么用的?  宁波自助建站系统如何快速打造专业企业网站?  在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  宝塔面板如何快速创建新站点?  金*站制作公司有哪些,金华教育集团官网?  可靠的网站设计制作软件,做网站设计需要什么样的电脑配置?  专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  如何用已有域名快速搭建网站?  c# F# 的 MailboxProcessor 和 C# 的 Actor 模型 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。