生成html的anchor滤波器?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (70)

我有一个小的angular过滤器,插入一个图标代替一个真值。它可以工作,但是html是编码的:

  var conApp = angular.module('conApp', []);
  conApp.filter('trueIcon', function($filter){
    return function(booleanValue){
        return booleanValue ? '<i class="icon-ok"></i>' : '';
    }
  });

我是否必须实现另一个过滤器来解码html?有“angular”的方法吗?

提问于
用户回答回答于

您需要使用ng-bind-html来呈现html。

<span ng-bind-html="foo | trueIcon"></span>

过滤器更多地用于将数据写入视图,而不是生成视图/DOM本身的元素。您最好为此创建一个指令:

app.directive('trueIcon', function() {
   return {
      restrict: 'E',
      template: '<i ng-class="{\'icon-ok\': value, \'icon-not-okay\': !value}"></i>',
      scope: {
         value: '='
      }
   };
});

<true-icon value="foo"></true-icon>

扫码关注云+社区

领取腾讯云代金券