Angular:在绑定之前操纵受信任的HTML

时间:2016-03-01 09:45:00

标签: angularjs ng-bind-html

在我的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节点。

0 个答案:

没有答案