9

我在 AngularJSautolinknl2br.

autolink:将 URL 字符串转换为<a>具有属性的标记rel="nofollow" target="_blank"。我尝试将 ngSanitize 与 linky 过滤器一起使用,但它没有向其中添加上面的 2 个属性,也没有提供使用现有 API 的方法。

nl2br:将新行转换为<br>标签。

我想在我的 HTML 中应用这 2 个过滤器{{ comment }}{{ comment | autolink | nl2br }}但过滤器是在 AngularJS 进行 HTML 转义之前应用的,这会导致<a>and<br>也被转义。基本上,我想在转义发生后应用过滤器。

有没有办法用 AngularJS 做到这一点?

4

1 回答 1

13

如果您的 HTML 中有标准插值,Angular 将转义它:

<div> {{ var | filter1 | filter2 }} </div>

整个表达式的结果将被转义。

您想要的是ng-bind-html-unsafe (此处的文档)。您可以表达与上述基本相同的内容:

<div ng-bind-html-unsafe='var | filter1 | filter2'></div>

现在表达式的结果将不会被清理,并将作为 div 的内容插入。

编辑:请注意,还有ng-bind-html,它仍然会生成 HTML,但会首先对其进行清理($sanitizedocs)。

ng-bind-html存在于ngSanitize模块中,因此您必须确保已在angular.module调用中将其声明为依赖项。

于 2013-02-20T20:28:36.643 回答