当前位置: 首页 > 面试题库 >

如何创建输出HTML的angularjs过滤器

夏英发
2023-03-14
问题内容

阅读AngularJS教程第9步后,
我创建了自己的AngularJS过滤器,该过滤器应将布尔数据转换为html。

这是我的过滤器代码:

angular.module('phonecatFilters', []).filter('iconify', function () { // My custom filter
    return function (input) {
        return input ? '<i class="icon-ok"></i>' : '<i class="icon-remove"></i>';
    }
});

这是我的HTML代码:

<dt>Infrared</dt>
  <dd>{{phone.connectivity.infrared | iconify }}"></dd>

问题是浏览器将返回值按字面显示为:

<i class="icon-ok"></i>

而不是应显示的图标(或呈现的html)。

这是JSFiddle示例

我认为在此过程中会发生一些消毒。

是否可以关闭此特定过滤器的消毒功能?

我也知道如何通过不从过滤器返回HTML输出而是显示“确定”或“删除”文本来显示图标,然后将其替换为:

<i class="icon-{{phone.connectivity.infrared | iconify}}"><i>

但这不是我想要的。


问题答案:

您应该使用ng-bind- html指令(需要导入清理模块和js文件):https
:
//docs.angularjs.org/api/ng/directive/ngBindHtml

<span ng-bind-html='phone.connectivity.infrared | iconify'></span>

您还需要导入CSS(我猜是Bootstrap),以便在工作时可以看到该图标。

我提供了一个有效的例子。



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

  • 写一个你自己的过滤器非常容易:在你的模块中注册一个新的过滤器(可注入的)工厂函数就行了。这个工厂函数必须放回一个新的过滤器函数,这个过滤函数的第一个参数接受的是输入。任何过滤器参数都会被当成附加的参数传递给过滤器。 下面的例子展示了逆转字符串文本。另外,它有条件地将文本大写并填上颜色。 index.html: <!doctype html> <html ng-app="MyReverseModul

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

  • 本文向大家介绍AngularJS通过$sce输出html的方法,包括了AngularJS通过$sce输出html的方法的使用技巧和注意事项,需要的朋友参考一下 【问题描述】 AngularJS的强大之处之一就是他的数据双向绑定功能----->ng-bind和针对form的ng-model 但在我们的项目当中会遇到这样的情况,后台返回的数据中带有各种各样的html标签 AngularJS输出html

  • 我正在尝试编写一个Python代码,它打开一个csv文件,其中包含书籍、作者、流派等的列表,允许用户输入ISBN编号,并根据该编号显示与搜索匹配的结果。 csv文件有500行和7列,以逗号分隔。 这是我的密码。现在,代码只显示为输出:[1行x 7列]。但它应该显示与ISBN匹配的行的每个信息。

  • 问题内容: 我正在尝试将换行符()转换为html 。 根据Google网上论坛的讨论,这是我得到的: 那里的讨论还建议在视图中使用以下内容: 这似乎正在使用旧的过滤器,而现在我们应该使用属性。 无论如何,这都会带来一个问题:我不希望原始字符串()中的任何HTML 都呈现为HTML;只有的。 例如,给定以下字符串: 虽然7> 5,但 我仍然不希望html和其他东西出现在这里… 我希望它输出: 有什么