一尘不染

如何从表达式输出HTML Unicode字符

angularjs

我试图输出简单的html unicode字符,例如♣从表达式中输出。

我尝试使用ng-bind-htmlng-bind-html-unsafe但无法使其显示在HTML中。

$scope.character = '♣';

<span ng-bind-html="{{character}}"></span>

  1. html代码未注入到span balise中
  2. 不会解释html代码(html字符未出现在控制台中,但是如果我不使用控制器中的表达式并直接调用<span ng-bind-html="&clubs;"></span>,则可以在控制台中看到正确解释的HTML字符,但仍未注入进入跨接栏杆)

如何从表达式输出html字符?

我导入脚本//ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular- sanitize.min.js并将ngSanitize依赖项添加到我的应用程序中。


阅读 318

收藏
2020-07-04

共1个答案

一尘不染

您将必须使用$
sce(严格上下文转义)
,ngHtmlBindUnsafe已在1.2中删除。

function myCtrl($scope,$sce){
    $scope.html = $sce.trustAsHtml('&clubs;');
}

小提琴:http :
//jsfiddle.net/TheSharpieOne/uPw2U/

此外,您可以创建一个过滤器,这样您就不必对控制器中的所有内容进行转义。

.filter('html',function($sce){
    return function(input){
        return $sce.trustAsHtml(input);
    }
})

HTML:

<span ng-bind-html="'&clubs;'|html"></span>

小提琴:http :
//jsfiddle.net/TheSharpieOne/uPw2U/1/

2020-07-04