建议使用 Angular Renderer2 以编程方式操作 DOM。
在我的指令中,我采用一些 el.nativeElement.innerText
,转换此文本并希望将其添加到我的元素中:
const text = renderer.createText(`${el.innerText}%`);
renderer.appendChild(el, text);
问题出在 el
- 它已经有了文本,所以它在它后面附加了转换后的文本。
我检查了 Renderer2 文档,似乎我可以使用 removeChild()
而无需传递对子项的引用,所以我不能使用 Renderer2 先清除组件?
在这种情况下,实现它的唯一方法是在渲染器方法之前使用 innerText = ''
,这使其毫无意义。
最佳答案
也许是这样的:
const childElements = this.el.nativeElement.children;
for (let child of childElements) {
this.renderer.removeChild(this.el.nativeElement, child);
}
关于angular - 如何清除 Angular (5+) Renderer2 中所有子项的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50277237/