我坚持以下情况。我有动态模板(template.html)和ng-include。
<div data-ng-include data-src="childTemplate">{{ var }}</div>
如果我尝试这样做:
$scope.childTemplate = 'child.html';
tpl = $compile($templateCache.get('template.html'))($scope);
在这种情况下,tpl仅包含没有子模板的已编译父模板。我试着做
<div data-ng-include data-src="childTemplate" onload="templateLoaded()"></div>
和
tpl = $compile($templateCache.get('template.html'))($scope);
$scope.contentLoaded = function() {
$compile($templateCache.get('child.html'))($scope)
}
在这种情况下,child.html已加载但未包含在父模板中。如何解决任务?谢谢!
答案 0 :(得分:-1)
tpl
现在是在DOM上编译的元素。
在编译child.html
之后,您应该做的是将其添加到DOM中。
因此,您可以执行以下操作:
tpl = $compile($templateCache.get('template.html'))($scope);
$scope.contentLoaded = function() {
var child = $compile($templateCache.get('child.html'))($scope);
tpl.appendChild(child);
}
如果你想将child.html
模板添加为tpl
个孩子的最后一个(如果没有,你应该导航它),这可能会有效。