Как выводить символы HTML Unicode из выражения
Я собираюсь выводить символы html unicode, например ♣
из выражения.
Я попытался использовать ng-bind-html
и ng-bind-html-unsafe
, но я не могу заставить его отображаться в своем HTML.
$scope.character = '♣';
<span ng-bind-html="{{character}}"></span>
- Код html не вводится в линейный баллистик
- HTML-код не интерпретируется (символ html не отображается в моей консоли, но если я не использую выражение из контроллера и напрямую вызываю
<span ng-bind-html="♣"></span>
, я могу видеть, что символ HTML правильно интерпретируется в моем консоль, но все еще не впрыскивается в палисадник)
Как выводить html-символы из выражения?
Я импортирую script //ajax.googleapis.com/ajax/libs/angularjs/1.2.7/angular-sanitize.min.js
и добавляю зависимость ngSanitize
в своем приложении.
Ответы
Ответ 1
Вам нужно будет использовать $sce (Strict Contextual Escaping), ngHtmlBindUnsafe был удален в 1.2
function myCtrl($scope,$sce){
$scope.html = $sce.trustAsHtml('♣');
}
Fiddle: http://jsfiddle.net/TheSharpieOne/uPw2U/
Далее, вы можете создать фильтр, чтобы вам не нужно было удалять все в контроллере.
.filter('html',function($sce){
return function(input){
return $sce.trustAsHtml(input);
}
})
HTML:
<span ng-bind-html="'♣'|html"></span>
Fiddle: http://jsfiddle.net/TheSharpieOne/uPw2U/1/