答案 0 :(得分:1)
简单的方法是在控制器中使用$compile
。
将HTML字符串或DOM编译到模板中并生成模板函数,然后可以将其用于将范围和模板链接在一起。
var app = angular.module("myApp", []);
app.controller("myCtrl", function($scope, $http, $sce, $compile) {
$scope.wat = 'blablalba';
$http.get("page2.html").then(function (response) {
var str = '<div ng-controller="Page2Controller"> {{wat}} <div style="background: red; height: 50px; width: 50px"></div> </div>';
var cont = $compile(response.data)($scope);
angular.element(document.querySelector('p')).append(cont);
});
});
app.controller('Page2Controller', function($scope) {
});
<div ng-app="myApp" ng-controller="myCtrl">
<p></p>
</div>
http://plnkr.co/edit/cOu69mPhfrvaA1buDUjT?p=preview
更好的方法是使用如下答案中的指令:Compiling dynamic HTML strings from database