【发布时间】:2016-07-25 22:23:16
【问题描述】:
我正在尝试在模板中插入一个包含一些标记的字符串。
在控制器中:$scope.message = "Hello moto <a ui-sref='home.test'>click</a>";
模板:
<div ng-bind-html="message.text"></div>
呈现为:
<div ng-bind-html="message.text" <div="" class="ng-binding">Hello moto <a>click</a></div>
尝试使用以下过滤器也无济于事;对于任何一个注释选项,文本都是简单转义的:
angular.module('test-filters', ['ngSanitize'])
.filter('safe', function($sce) {
return function(val) {
return $sce.trustAsHtml(val);
//return $sce.trustAsUrl(val);
//return $sce.trustAsResourceUrl(val);
};
});
如何在不转义或剥离属性的情况下插入字符串?
编辑:Plunker http://plnkr.co/edit/H4O16KgS0mWtpGRvW1Es?p=preview(更新为引用 ngSanitize 的 sylwester 版本
【问题讨论】:
-
您能提供一个 Plunker 示例 (plnkr.co) 吗?
-
@mfirry 刚刚编辑了原帖
-
你能在你的模板中试试{{message}}
-
@vgSefa 与
<li> {{ message }} </li>做同样的事情。不过仍然更新了 plunkr。 -
您是如何尝试使用过滤器的?
ng-bind-html将尝试制作一个可以安全使用的版本,所以你必须确保你正确使用了$sce.trustAsHtml
标签: angularjs