我想为某些字符串执行自动html格式化。 例如,我想为以下划线为前缀的char做自动下标 所以像“U_1 + U_2 = U_3”这样的字符串 应格式化为U 1 + U 2 = U 3
对于过滤器来说,这看起来很完美。我尝试了以下方法:
angular.module('myApp.filters', []).
filter('convert_subscripts', [ function(){
return function(text){
return text.replace(/_([\w]+)/, '<sub>$1</sub>', 'g');
};
}])
在我看来:
<p>{{content.text | convert_subscripts }}</p>
但这会逃脱HTML,因此用户会看到“sub”标签而不是格式良好的下标。
如何实现格式化功能,以便不转义html-Tags?
(为了完美,为了安全起见,content.text本身应该被转义,但是没有添加下标标签。我使用角度1.2)
答案 0 :(得分:0)
I think this article should help. 您可以通过两种方式呈现html
$sce.trustAsHtml('text')
或者你可以为此目的创建一个过滤器,如
app.filter('filterName',function($sce){
return function(text){
$sce.trustAsHtml(text);
}
});
在您的情况下,您应该使用方法1
function($sce){
return function(text){
return $sce.trustAsHtml(text.replace(/_([\w]+)/, '<sub>$1</sub>', 'g'));
};