如何在AngularJS中获取整个HTML页面?

时间:2017-02-09 15:22:13

标签: javascript html angularjs

我想将整个HTML页面的内容从AngularJS代码生成例如:该页面包含Angular代码)作为字符串变量。

例如,使用以下代码:

var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', ['$scope', function($scope) {
  $scope.myVar = 'Hello world!';
}]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="myApp" ng-controller="MyCtrl">
  {{myVar}}
</div>

我想得到:

var myHtml = '<div>Hello world!</div>';

我该怎么做?

JSFiddle of the code

1 个答案:

答案 0 :(得分:0)

我更新了您的Fiddle并使其正常运行。在你的情况下,这个synthax应该工作:

document.querySelector('div[ng-app]').innerHTML;

视图

<div ng-app="myApp" ng-controller="MyCtrl">
    <div>{{myVar}}</div>
    <button ng-click="getTheDamnHoleHTML()">
        Collect the whole AngularJS Application HTML/DOM
    </button>
</div>

AngularJS应用程序

var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', ['$scope', function($scope) {
  $scope.myVar = 'Hello world!';

  $scope.getTheDamnHoleHTML = function () {
    console.log(document.querySelector('div[ng-app]').innerHTML);
  }
}]);