在我的Angular应用程序中,我从API接收一些HTML作为字符串,然后我想在页面中呈现它。所以我这样做:
var myHtml = $sce.valueOf(inputString);
return myHtml;
然后我将其包含在我的模板中:
<div ng-bind-html="myHtml"></div>
这很好。但在我渲染之前,我还想对HTML节点的文本内容进行一些更改。 (我不想对原始inputString执行此操作,因为很难避免影响HTML标记。)所以我尝试了:
var myHtml = $sce.valueOf(inputHtml);
// myHtml is an object of type TrustedValueHolderType
// now I want to access the HTML nodes inside it so I do:
for (var i = 0; i < myHtml.length; ++i) {
if (myHtml[i].nodeType === 3) {
myHtml[i].nodeValue = myHtml[i].nodeValue.replace(/a/, 'b');
}
}
return myHtml;
然后将其包含在我的模板中:
<div ng-bind-html="myHtml"></div>
但这不起作用,因为myHtml不是节点列表,而是TrustedValueHolderType类型的对象,我无法访问其中的HTML节点。