通过Angular JS过滤器返回函数式HTML代码

通过Angular JS过滤器返回函数式HTML代码,html,angularjs,angularjs-directive,angular-filters,Html,Angularjs,Angularjs Directive,Angular Filters,我试图通过angular过滤任何文本,以返回一个字体很棒的图标。相反,它只是返回纯文本。有人知道怎么解决吗?谢谢 .filter('textToIcon', function($sce) { return function(text) { if(text!==''){ return '<i class="fa fa-child"></i>'; } } .filter('textToIcon',函数($sce){ 返回函数(文本){ 如果(

我试图通过angular过滤任何文本,以返回一个字体很棒的图标。相反,它只是返回纯文本。有人知道怎么解决吗?谢谢

.filter('textToIcon', function($sce) {
return function(text) {
    if(text!==''){
        return '<i class="fa fa-child"></i>';
    }
}
.filter('textToIcon',函数($sce){
返回函数(文本){
如果(文本!=''){
返回“”;
}
}
这是“严格概念转义”(SCE)在起作用。
有关它是什么以及如何工作的更多信息,请参阅

简而言之,Angular试图保护您的用户不受可能对他们造成不良影响的不可信内容的影响。如果您知道这些值可以安全地解释为HTML,则可以采取两种方法:

  • 导入
    ngSanitize
    (它作为一个单独的模块提供)并将其作为依赖项添加到您的模块中(例如
    angular.module('myApp',['ngSanitize'])
    )。您已经设置好了(只要将安全值传递给
    ngBindHtml

  • 使用
    $sce
    指定(您)明确信任某些内容作为HTML使用:

    .filter('textToIcon',函数($sce){ 返回函数(文本){ 如果(文本){ 返回$sce.trustAsHtml(“”); } }; })



  • 强烈建议使用前一种方法!

    参见类似问题[此处][1]。还有一个正在运行的pluker演示。[1]: