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

标签 angular angular5

建议使用 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/

相关文章:

Angular 2 访客柜台

javascript - 有没有办法将工作 HTML 页面用作 Angular 5/6 组件?

angular - 我们如何在 ANGULAR 6 中将 ckfinder 集成到 ckeditor 中?

angular - Angular2- Material 2 : Want to setup a fixed sidenav below toolbar

javascript 正则表达式 驼峰式

angular - 来自 observable : testing with Jasmine marbles 的特殊结果

javascript - Angular 4 到 Angular 5 找不到模块 '@angular/router'

javascript - 无法在 angular2 中循环 json 对象

angular5 - Angular 5x - 将值从一个组件发送到另一个组件,无需子/父关系

css - 绑定(bind)到 'style.grid' 会引发 'sanitizing unsafe style value' 警告