抱歉之前的问题格式不好。现在更改
我有一个html字符串,它使用ngrepeat呈现所需的div ..
var templateHTML = "<div ng-repeat='entity in createCtrl.finalCCList'>\
<span>{{entity.name}}</span>\
</div>";
此处“createCtrl.finalCCList”包含实体对象列表,其中包含name和id属性。 现在,当我尝试使用 -
编译它时var compiledTemplateHTML = $compile(templateHTML)($scope);
if (compiledTemplateHTML && compiledTemplateHTML[0]) {
return compiledTemplateHTML[0].outerHTML;
}
else {
return "";
}
我一无所获。虽然我检查过并且$ scope.createCtrl.finalCCList确实具有所需的值。
我在这里遗漏了什么。
答案 0 :(得分:0)
确定。经过大量的研究,我认为问题是在编译需要时间之后,在字符串html中由ng-repeat呈现的DOM,我在完成之前分配它。如果我在超时中使用赋值,它可以正常工作。
所以不是这个 -
var compiledTemplateHTML = $compile(templateHTML)($scope);
if (compiledTemplateHTML && compiledTemplateHTML[0]) {
return compiledTemplateHTML[0].outerHTML;
}
else {
return "";
}
我没有返回,而是在$ timeout
中分配范围var compiledTemplateHTML = $compile(templateHTML)($scope);
if (compiledTemplateHTML && compiledTemplateHTML[0]) {
$timeout(function () {
createCtrl.isHeaderContent = compiledTemplateHTML[0].outerHTML;
}, 0);
}
感谢。