我正在创建一个Angular JS应用程序,我从服务器上获取了一个需要在我的站点中显示的文本。 我从服务器获得的文本:
"My name is <b> John </b>" with b tags.
不幸的是,当我显示它时,每个人都会通知强文本标签。
{{text}}
我希望用户只会看到&#34; John&#34;用粗体。 有任何想法吗?
答案 0 :(得分:3)
<强> PLUNKER DEMO 强>
您可以使用ng-bind-html
作为@CAT建议,但如果您不想明确使用$sce.trustAsHtml()
,则可以使用此指令:
.directive('htmlSafe', function($parse, $sce) {
return {
link: function(scope, elem, attr) {
var html = attr.ngBindHtml;
if(angular.isDefined(html)) {
var getter = $parse(html);
var setter = getter.assign;
setter(scope, $sce.trustAsHtml(getter(scope)));
}
}
};
});
然后你可以在你的html中使用它:
<div ng-bind-html="html" html-safe></div>
答案 1 :(得分:1)
这是正常行为,因为Angular的消毒而发生了这种行为。你不能打印出html标签。您需要使用ng-bind-html。