建议使用 Angular Renderer2 以编程方式操作 DOM。
在我的指令中,我采用了一些el.nativeElement.innerText,转换此文本并希望将其添加到我的元素中:
const text = renderer.createText(`${el.innerText}%`);
renderer.appendChild(el, text);
问题在于el- 它已经有了文本,所以它在它之后附加了转换后的文本。
我检查了 Renderer2 文档,似乎我可以在removeChild()不将引用传递给 child 的情况下使用,所以我不能先使用 Renderer2 来清除组件?
在这种情况下,实现它的唯一方法是使用innerText = ''渲染器方法之前,这使其毫无意义。
这是正确的代码:
const childElements = this.el.nativeElement.childNodes;
for (let child of childElements) {
this.renderer.removeChild(this.el.nativeElement, child);
}
Run Code Online (Sandbox Code Playgroud)
也许是这样的:
const childElements = this.el.nativeElement.children;
for (let child of childElements) {
this.renderer.removeChild(this.el.nativeElement, child);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8237 次 |
| 最近记录: |