我无法让嵌入的内容在我的自定义指令中正确呈现。
以下是示例:
http://plnkr.co/edit/mvx5GuMrPcUPJbrOCKbD
来自外部源的内容具有换行符 ( \n
) 字符,我想使用过滤器将换行符替换为<br>
HTML 标记。
app.filter('newline2br_trust', ['$sce',
function($sce) {
return function(input) {
return input ? $sce.trustAsHtml(input.replace(/\n/g, '\n<br/>')) : '';
};
}
]);
如果我在单个元素上使用 ng-bind-html,这似乎可以正常工作,但如果我有一个包含嵌入内容的自定义指令,它似乎会忽略 $sce.trustAsHtml(),并转义 HTML 内容:
<multiline>{{ example.data1 | newline2br_trust }}</multiline>
我怎样才能让我的指令正确地嵌入这个 HTML 内容?
注意:这似乎与 AngularJS 表达式 + ngTransclude 的 $sce 功能有关,因为原始/静态 HTML 内容适用于 transclude:
<multiline>BrLine1<br/>BrLine2<br/>BrLine3</multiline>