如何清除 Angular (5+) Renderer2 中所有子元素的元素?

Łuk*_*ski 5 angular angular5

建议使用 Angular Renderer2 以编程方式操作 DOM。

在我的指令中,我采用了一些el.nativeElement.innerText,转换此文本并希望将其添加到我的元素中:

const text = renderer.createText(`${el.innerText}%`); renderer.appendChild(el, text);

问题在于el- 它已经有了文本,所以它在它之后附加了转换后的文本。

我检查了 Renderer2 文档,似乎我可以在removeChild()不将引用传递给 child 的情况下使用,所以我不能先使用 Renderer2 来清除组件?

在这种情况下,实现它的唯一方法是使用innerText = ''渲染器方法之前,这使其毫无意义。

byt*_*ris 7

这是正确的代码:


    const childElements = this.el.nativeElement.childNodes;
    for (let child of childElements) {
      this.renderer.removeChild(this.el.nativeElement, child);
    }

Run Code Online (Sandbox Code Playgroud)


Jua*_*uan 6

也许是这样的:

const childElements = this.el.nativeElement.children;
for (let child of childElements) {
  this.renderer.removeChild(this.el.nativeElement, child);
}
Run Code Online (Sandbox Code Playgroud)