Javascript ng bind html将数据呈现为html,但忽略子元素

Javascript ng bind html将数据呈现为html,但忽略子元素,javascript,html,css,angularjs,ng-bind-html,Javascript,Html,Css,Angularjs,Ng Bind Html,我正在开发这个函数,该函数根据用户输入生成HTML,我可以使用ng bind as HTML在列表项中(而不是字符串版本)将其呈现为正确的HTML 唯一的问题是它不会呈现同时也是li标记中的子元素的span标记。我是一个棱角分明的n00b,可以利用你的任何洞察力 下面的代码允许我将函数输出为正确的HTML,这很好,但是我需要显示span标记,因为它允许我的用户复制文本的内容 基本上,我可以在不使用绑定html的情况下进行重写,并适当地呈现span,也可以在呈现html输出时不获取span标记。我

我正在开发这个函数,该函数根据用户输入生成HTML,我可以使用ng bind as HTML在列表项中(而不是字符串版本)将其呈现为正确的HTML

唯一的问题是它不会呈现同时也是li标记中的子元素的span标记。我是一个棱角分明的n00b,可以利用你的任何洞察力

下面的代码允许我将函数输出为正确的HTML,这很好,但是我需要显示span标记,因为它允许我的用户复制文本的内容

基本上,我可以在不使用绑定html的情况下进行重写,并适当地呈现span,也可以在呈现html输出时不获取span标记。我只能选择其中一个,而不是两个。。。我两者都想要。经典

谢谢你的帮助

<li 
class="entry"
ng-repeat="entry in output track by $index"
ng-mouseenter="onEnter()"
ng-bind-html="entry">
  {{entry}}
  <span 
    class="copy"
    ng-click="copyData(entry)" 
    ng-mouseenter="onEnter()">
    {{message}}
  </span>
</li>
  • {{entry}} {{message}}

  • 您可以创建一个自定义的
    指令
    来实现这一点,方法是使用
    transclude
    ng transclude
    ,如下所示

    var-app=angular.module('app',[]);
    app.controller('TestController',['$scope',函数($scope){
    $scope.message='不客气!';
    $scope.output=['Hello user'];
    }]);
    app.directive('bindHtml',['$sce',function($sce){
    返回{
    限制:“A”,
    是的,
    模板:“”,
    链接:函数(范围、元素、属性){
    scope.html=$sce.trustAsHtml(scope.eval(attrs.bindHtml));
    }
    };
    }]);
    引导(文档,['app'])
    
    
    
  • {{message}}

  • 还没有看到下面的答案吗?