2014-01-13 16 views
19

simples html unicode文字を出力することを試行しています。たとえば、式から♣を出力します。式からHTMLユニコード文字を出力する方法

私はng-bind-htmlng-bind-html-unsafeを使用しようとしましたが、HTMLに表示されません。

$scope.character = '♣';

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

  1. HTMLコードをHTMLコードが解釈されていないスパン地上子
  2. に注入されていません(HTML文字は私のコンソールに表示されますが、私の場合はありませんコントローラーからの式を使用せずに<span ng-bind-html="&clubs;"></span>を直接呼び出してください。私のコンソールで正しく解釈されたHTML文字を見ることができますが、まだスパン・バライスには注入されていません)

式からhtml文字を出力する方法は?

私はスクリプト//ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-sanitize.min.jsをインポートし、私のアプリにngSanitizeの依存関係を追加します。

+0

なぜ単にUnicodeエスケープシーケンスを使用していませんか? –

答えて

45

あなたは$sce (Strict Contextual Escaping)を使用する必要があります、ngHtmlBindUnsafeが1.2

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

フィドルで削除されました:http://jsfiddle.net/TheSharpieOne/uPw2U/

Furthernoreあなたは、コントローラのすべてをエスケープする必要がないように、あなたはフィルタを作成することができます。

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

HTML:

フィドル: '\ u2663の':http://jsfiddle.net/TheSharpieOne/uPw2U/1/

関連する問題