编译字符串 htmlusing angular compile not working having ng-repeat in it
Compiling string htmlusing angular compile not working having ng-repeat in it
抱歉之前问题格式不好。现在改变这个
我有一个 html 字符串,它使用 ngrepeat 来呈现所需的 div..
var templateHTML = "<div ng-repeat='entity in createCtrl.finalCCList'>\
<span>{{entity.name}}</span>\
</div>";
此处 "createCtrl.finalCCList" 包含实体对象列表,其中包含名称和 ID 属性。
现在,当我尝试使用 -
编译它时
var compiledTemplateHTML = $compile(templateHTML)($scope);
if (compiledTemplateHTML && compiledTemplateHTML[0]) {
return compiledTemplateHTML[0].outerHTML;
}
else {
return "";
}
我一无所获。而我检查并发现 $scope.createCtrl.finalCCList 确实具有所需的值。
我是不是遗漏了什么。
好的。经过大量研究,我发现问题是 DOM 在编译需要时间后由字符串 html 中的 ng-repeat 渲染,我在完成之前分配它。如果我在超时时使用赋值,它工作正常。
所以不是这个-
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);
}
谢谢。
抱歉之前问题格式不好。现在改变这个
我有一个 html 字符串,它使用 ngrepeat 来呈现所需的 div..
var templateHTML = "<div ng-repeat='entity in createCtrl.finalCCList'>\
<span>{{entity.name}}</span>\
</div>";
此处 "createCtrl.finalCCList" 包含实体对象列表,其中包含名称和 ID 属性。 现在,当我尝试使用 -
编译它时var compiledTemplateHTML = $compile(templateHTML)($scope);
if (compiledTemplateHTML && compiledTemplateHTML[0]) {
return compiledTemplateHTML[0].outerHTML;
}
else {
return "";
}
我一无所获。而我检查并发现 $scope.createCtrl.finalCCList 确实具有所需的值。
我是不是遗漏了什么。
好的。经过大量研究,我发现问题是 DOM 在编译需要时间后由字符串 html 中的 ng-repeat 渲染,我在完成之前分配它。如果我在超时时使用赋值,它工作正常。
所以不是这个-
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);
}
谢谢。