如何在Angular中生成独立的HTML页面

时间:2017-09-13 14:32:46

标签: javascript angularjs

我想生成一个完整的独立HTML页面。

到目前为止,我已经尝试过:

R2

但这只会返回一个文本元素。

我已成功使用$ interpolate作为变量,但这对ng-repeat和其他指令不起作用。

如何在前端生成完全编译的HTML页面?

如果您的问题是“为什么要这样做?”,请考虑一个页面创建者界面,用户可能会在其中输入一些变量并期望回复HTML页面。

1 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解您的问题,但我已经创建了下面的代码段。这是你想要达到的目标吗?我改变了一个关于你的例子的重要事情是,我使用$rootScope.$new()创建了链接函数的范围。它只使用简单的javascript对象不起作用。

angular.module('test', [])
  .controller('test', function($rootScope, $rootElement, $compile) {
    var element = angular.element('<html><body><div>{{stuff}}</div><ul><li ng-repeat="item in list">{{item}}</li></ul></body></html>');
    var scope = $rootScope.$new();
    scope.stuff = 'Things';
    scope.list = [
      'item1',
      'item2'
    ];
    var result = $compile(element)(scope);
    $rootElement.append(result);
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="test" ng-controller="test"></div>