Angularjs 角度:在绑定之前操作受信任的HTML
在我的Angular应用程序中,我从API接收一些HTML作为字符串,然后我想在页面中呈现它。因此,我:Angularjs 角度:在绑定之前操作受信任的HTML,angularjs,ng-bind-html,Angularjs,Ng Bind Html,在我的Angular应用程序中,我从API接收一些HTML作为字符串,然后我想在页面中呈现它。因此,我: var myHtml = $sce.valueOf(inputString); return myHtml; 然后我将其包括在我的模板中: <div ng-bind-html="myHtml"></div> <div ng-bind-html="myHtml"></div> 这个很好用。但在渲染之前,我还想对HTML节点的文本内容进
var myHtml = $sce.valueOf(inputString);
return myHtml;
然后我将其包括在我的模板中:
<div ng-bind-html="myHtml"></div>
<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;
var myHtml=$sce.valueOf(inputtml);
//myHtml是TrustedValueHolderType类型的对象
//现在,我想访问其中的HTML节点,因此:
for(var i=0;i
然后将其包含在我的模板中:
<div ng-bind-html="myHtml"></div>
<div ng-bind-html="myHtml"></div>
但这不起作用,因为myHtml不是节点列表,而是TrustedValueHolderType类型的对象,我无法访问其中的HTML节点。它是否会引发特定错误?在运行
$sce.valueOf(inputtml)
之前,您是否尝试过执行替换?请导入消毒模块@Ankh的可能副本,谢谢。我编辑了这个问题以澄清我的问题。它不会抛出任何错误,因为它不会遍历对象。我可以在输入仍然是字符串的情况下进行替换,但是要避免更改HTML标记是很棘手的。