附加ng-click以动态更改html

时间:2015-05-04 18:37:46

标签: angularjs angularjs-scope angularjs-ng-repeat

对于带有标签的说明,我有一个ng-repeat。我使用init来过滤标签,用ng-click重写描述。但是,ng-click后不起作用。这可能吗?

<div ng-repeat="desc in descs">
   <div ng-init="desc.description = getTags(desc.description )">
      {{ desc.description }}
   </div>
</div> 

<script>
$scope.getTags = function(desc) {
   var desc = desc.replace("#tag", '<span ng-click="function">#tag</span>');
   return desc;
}
</script>

由于

2 个答案:

答案 0 :(得分:1)

注入AngularJS的HTML代码应使用$ compile

进行处理

请参阅此处的官方文档:https://docs.angularjs.org/api/ng/service/$compile

答案 1 :(得分:1)

您需要使用ng-bind-html,但您还需要创建一个使用$sce服务trustAsHtml方法清理该html的过滤器。

<强>标记

<div ng-repeat="desc in descs">
   <div ng-bind-html="getTags(desc.description) | trustHtml">
   </div>
</div> 

过滤

app.filter('trustHtml', function($sce) { 
  return function(text) {
    $sce.trustAsHtml(text);
  };
}