当前位置: 首页 > 编程笔记 >

AngularJS通过$sce输出html的方法

阮轶
2023-03-14
本文向大家介绍AngularJS通过$sce输出html的方法,包括了AngularJS通过$sce输出html的方法的使用技巧和注意事项,需要的朋友参考一下

【问题描述】

AngularJS的强大之处之一就是他的数据双向绑定功能----->ng-bind和针对form的ng-model

但在我们的项目当中会遇到这样的情况,后台返回的数据中带有各种各样的html标签

AngularJS输出html的时候,浏览器并不解析这些html标签

通过api,发现通过指令 ng-bind-html来实现html的输出。

<div class="col-md-12 ng-binding" ng-bind-html="item.content "> 

但是并不起作用,浏览器中显示的还是html代码。

【解决办法】

后来发现还需要通过通过$sce服务来实现html的展示。

angular.module("list",[]).controller("BlogListCtrl", BlogListCtrl).filter( 
 'to_trusted', ['$sce', function ($sce) { 
  return function (text) { 
   return $sce.trustAsHtml(text); 
  } 
 }] 
) 

这里通过$sce构建一个过滤器来对输出的html进行过滤

<div class="col-md-12 ng-binding" ng-bind-html="item.content|to_trusted "> 

这样就可以通过AngularJS正常的输出html标签,并且被浏览器解析了

【总结】

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

 类似资料:
  • 问题内容: 标题输出很好,但是内容却没有。它里面有一些html,我得到了以下错误:像这样描述:http : //docs.angularjs.org/error/ $ sce:unsafe,这很好,但是那我怎么能在那里输出内容将在其中一些HTML,所以我必须将其设置为或smthn。正确的方法是什么? 编辑: AngularJS版本:1.2 问题答案: 因此解决方法是: 从http://code.a

  • 问题内容: 阅读AngularJS教程第9步后, 我创建了自己的AngularJS过滤器,该过滤器应将布尔数据转换为html。 这是我的过滤器代码: 这是我的HTML代码: 问题是浏览器将返回值按字面显示为: 而不是应显示的图标(或呈现的html)。 这是JSFiddle示例 我认为在此过程中会发生一些消毒。 是否可以关闭此特定过滤器的消毒功能? 我也知道如何通过不从过滤器返回HTML输出而是显示

  • 问题内容: 我从服务器获取JSON数据,其中一个字段包含转义的html(实际上是电子邮件正文): (更多…) 我为尝试使用AngularJs渲染而疯狂。 以下内容不起作用: 我认为这是正常的,因为html实际上已经转义了。我应该先取消转义吗?Angular是否可以通过某些可用服务转义html? 如果我这样使用$ sce: 显示源html,检查元素可以看到引用的内容。换句话说,在页面中将显示源htm

  • 问题内容: 我有一些这样的文字: 我想显示不带标签的内容: 我也不想应用标签,我想剥离它们。有什么简单的方法可以做到这一点? 角HTML: 问题答案: jQuery比SLOWER慢40倍左右 ,请不要将jQuery用于该简单任务。 用法: 使用angular.js: 用 :

  • FAQs in section [15]: [15.1] 为什么应该用 <iostream> 而不是传统的 <cstdio>? [15.2] 当键入非法字符时,为何我的程序进入死循环? [15.3] 那个古怪的while (std::cin >> foo)语法如何工作? [15.4] 为什么我的输入处理会超过文件末尾? [15.5] 为什么我的程序在第一个循环后,会忽略输入请求呢? [15.6]

  • 问题内容: 我有收音机输入,如果要检查当前收音机,我想通过单击收音机u检查状态。 这段代码: 不工作 小提琴:http : //jsfiddle.net/Zoomer/8s4m2e5e/ 问题答案: 单选按钮一次只能选择一个,并且一旦被选中就不能被用户取消选中(除非您以编程方式进行操作)。因此,如果要在当前选中它时取消选中它,则可以执行以下操作: 在您的控制器中: 演示:http : //jsfi