Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 角度:在绑定之前操作受信任的HTML_Angularjs_Ng Bind Html - Fatal编程技术网

Angularjs 角度:在绑定之前操作受信任的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节点的文本内容进

在我的Angular应用程序中,我从API接收一些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标记是很棘手的。