gpt4 book ai didi

angularjs - 如何在 Angularjs 中一起使用 nl2br 和链接过滤器?

转载 作者:行者123 更新时间:2023-12-04 17:34:24 27 4
gpt4 key购买 nike

我正在尝试使用多个过滤器,如下所示,

<p><span ng-bind-html="someVar | nl2br | linky"></span></p>

什么都不渲染。
但是,当我如下更改过滤器的顺序时
<p><span ng-bind-html="someVar | linky | nl2br"></span></p>

linky 有效,但 nl2br 无法将换行符转换为 br。

以下实现可用于 nl2br:
.filter('nl2br', function($sce) {
return function(input) {
return $sce.trustAsHtml( input.replace(/\n/g, '<br>') );
}
}

最佳答案

所以我能够使用 someVar | linky | nl2br 让它工作.问题出在链接过滤器上。 ngSanitize 的链接过滤器将\r 和\n 更改为 &#10;&#13;分别。鉴于 nl2br 过滤器未能捕捉到这些。

感谢这个要点 https://gist.github.com/kensnyder/49136af39457445e5982 ,修改nl2br如下

angular.module('myModule')
.filter('nl2br', ['$sanitize', function($sanitize) {
var tag = (/xhtml/i).test(document.doctype) ? '<br />' : '<br>';
return function(msg) {
// ngSanitize's linky filter changes \r and \n to &#10; and &#13; respectively
msg = (msg + '').replace(/(\r\n|\n\r|\r|\n|&#10;&#13;|&#13;&#10;|&#10;|&#13;)/g, tag + '$1');
return $sanitize(msg);
};
}]);

工作 fiddle http://jsfiddle.net/fxpu89be/4/

但是,它仍然没有解决以相反顺序使用它的原始问题,即 someVar | nl2br | linky

关于angularjs - 如何在 Angularjs 中一起使用 nl2br 和链接过滤器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28089736/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com