AngularJS-如何获取渲染的DOM元素的innerHTML

时间:2018-10-10 11:20:15

标签: javascript html angularjs dom render

有没有办法获取包含ng-repeat循环的渲染元素的innerHTML代码?

例如:

<div id="container">
    <div ng-repeat="e in ctrl.elements>{{e.name}}</div>
</div>

1 个答案:

答案 0 :(得分:1)

您可以使用$document[0].getElementById("container").innerHTML
请记住在ng-repeat完成工作后再调用它-我在下面的代码段中将其延迟。

angular.module('app', [])
  .controller('ExampleController',  function($scope, $document, $timeout) {
    $scope.ctrlelements = [{name: "aaaa"}, {name: "bbbb"}];
    
    console.log($document[0].getElementById("container").innerHTML)
    
    $timeout(function(){
      console.log($document[0].getElementById("container").innerHTML)
    }, 1000)
    });
<script src="//code.angularjs.org/snapshot/angular.min.js"></script>
<body ng-app="app">
  <div ng-controller="ExampleController">
    <div id="container">
    <p ng-repeat="e in ctrlelements track by $index">{{e.name}}</p>
  </div>
  
</div>
</body>

PS。与处理innerHTML

相比,也许有更好的方法来解决您的问题