Angularjs ngTransclude在自定义指令中中断HTML内容呈现,即使使用$sce.trustAsHtml()过滤器也是如此
我无法在自定义指令中正确呈现转置的内容 以下是一些例子: 来自外部源的内容具有换行符(Angularjs ngTransclude在自定义指令中中断HTML内容呈现,即使使用$sce.trustAsHtml()过滤器也是如此,angularjs,angularjs-directive,angularjs-ng-transclude,Angularjs,Angularjs Directive,Angularjs Ng Transclude,我无法在自定义指令中正确呈现转置的内容 以下是一些例子: 来自外部源的内容具有换行符(\n)字符,我想使用筛选器将换行符替换为HTML标记 app.filter('newline2br_trust', ['$sce', function($sce) { return function(input) { return input ? $sce.trustAsHtml(input.replace(/\n/g, '\n<br/>')) : ''
\n
)字符,我想使用筛选器将换行符替换为
HTML标记
app.filter('newline2br_trust', ['$sce',
function($sce) {
return function(input) {
return input ? $sce.trustAsHtml(input.replace(/\n/g, '\n<br/>')) : '';
};
}
]);
app.filter('newline2br_trust',['sce',
功能($sce){
返回函数(输入){
返回输入?$sce.trustAsHtml(input.replace(/\n/g,'\n
'):'';
};
}
]);
如果我在单个元素上使用ng bind html,这似乎可以正常工作,但是如果我有一个包含转置内容的自定义指令,它似乎会忽略$sce.trustAsHtml(),并转义html内容:
<multiline>{{ example.data1 | newline2br_trust }}</multiline>
{{example.data1}newline2br_trust}
我怎样才能得到正确转写HTML内容的指令
注意:这似乎是AngularJS表达式+ngTransclude的$sce功能,因为原始/静态HTML内容可以与transclude正常工作:
<multiline>BrLine1<br/>BrLine2<br/>BrLine3</multiline>
BrLine1
BrLine2
BrLine3
尝试使用
是,如果您查看plunkr,ng bind html
有效,但我希望此指令适用于所有转置内容。
标记在原始HTML被转包时起作用,但如果HTML来自表达式,即使该表达式以输出$sce.trustAsHtml
内容的过滤器结尾,也不起作用。这里有什么帮助吗?不幸的是,没有,我正在寻找使用ngTransclude的解决方案。@thaMANSTA你解决过这个问题吗?试着使用
是的,如果你看一下plunkr,ng bind html
可以工作,除了我希望这个指令可以处理所有转置的内容。
标记在原始HTML被转包时起作用,但如果HTML来自表达式,即使该表达式以输出$sce.trustAsHtml
内容的过滤器结尾,也不起作用。这里有什么帮助吗?不幸的是,没有,我正在寻找使用ngTransclude的解决方案。@thaMANSTA您解决过这个问题吗?