粗体特定单词不显示b标签角度js

时间:2014-07-29 07:58:49

标签: html angularjs

我正在创建一个Angular JS应用程序,我从服务器上获取了一个需要在我的站点中显示的文本。 我从服务器获得的文本:

"My name is <b> John </b>" with b tags.

不幸的是,当我显示它时,每个人都会通知强文本标签。

  {{text}}

我希望用户只会看到&#34; John&#34;用粗体。 有任何想法吗?

2 个答案:

答案 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