我有一个动态创建元素的代码(x
和parentDiv
)。
var x = document.createElement('myTag');
parentDiv.appendChild(x);
我的指令看起来像这样:
.directive("myTag", function($compile) {
return {
restrict: "E",
replace: true,
template: "<span><img src='something/url/img.png'></img></span>"
}
})
如何在指令中将myTag标记替换为该代码? 我知道使用$ compile,因此AngularJS之外的代码可以涵盖在其范围内,但我不知道在哪里放置它。
答案 0 :(得分:0)
实际上,在添加元素之前,您应该使用compile
:
var childScope = scope.$new();
var x = document.createElement('myTag');
var compiled = $compile(x)(childScope);
parentDiv.appendChild(compiled);
$compile
服务将获取模板:
<span><img src='something/url/img.png'></img></span>
并将其放在以x
引用的DOM元素中。