当我把它放在我的HTML中时,它运行正常:
<div ng-include="'my-template.html'"></div>
但是当我尝试使用jQuery动态创建ngInclude指令时(在DOM准备好之后),它不起作用:
$(function() {
var el = document.createElement('div');
el.setAttribute('ng-include', "'my-template.html'");
$('.container').replaceWith(el);
});
该元素确实使用预期的模板插入到DOM中,但它不会被解释为AngularJS代码。控制台没有错误。
我错过了什么?
答案 0 :(得分:2)
您需要compile HTML
我不确定您的文件中的语法是什么样的(无论您是否使用requireJS),但它应该类似于使用范围编译新元素。
angular.element('[ng-app]')
.injector()
.invoke(['$compile', function ($compile) {
var $scope = angular.element(el).scope();
$compile(el)($scope);
$scope.$apply();
}]);