对于最近偶然发现这个问题的任何人,这里是@mikel 答案的更新版本(ng-bind-html-unsafe
自 angular v 1.2.0 以来已被弃用)。相反,您必须将 html 标记为受信任并使用ng-bind-html
.
以下自定义过滤器将为所有主题标签(coffeescript)添加一个跨度:
angular.module('myApp', ['ngSanitize'])
.filter('pxnHashtagHighlight', ($sce)->
(value)->
hashtags = /(?:^|\s)(#(\w+))/gm
$sce.trustAsHtml(value.replace(hashtags, ' <span class="tag">$1</span>'))
)
可与以下标记(玉)一起使用:
div.example(ng-bind-html="comment.data | pxnHashtagHighlight")
笔记
- 因为我们要添加 html,所以不能使用plain
ng-bind
或{{ }}
速记。
- 此方法依赖于
$sce
将 html 标记为受信任。在较新的 android 版本中,这已从核心中删除到ngSanitise
模块中,因此您必须下载它并将其添加为您的应用程序的依赖项。