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您解决过这个问题吗?