Angular Universal中使用Renderer2的代码不起作用

时间:2017-09-26 02:27:25

标签: angular angular-universal

我尝试执行以下操作,我有一个组件,在其中我有其他div元素,除此之外, 我想删除示例标记并按顺序将所有子元素传递给父元素

Angular4中的代码工作(开发工作,不在通用中工作,不能用于工作);

  ngOnInit(): void {
    var nativeElement: HTMLElement = this.el.nativeElement,
    parentElement: HTMLElement = nativeElement.parentElement;
    // move all children out of the element
    while (nativeElement.firstChild) {
      parentElement.insertBefore(nativeElement.firstChild, nativeElement);
    }
    // remove the empty element(the host)
    parentElement.removeChild(nativeElement);
  }

我通过Renderer2修改dom的方式,因为文档指定了它,但是下面的代码不起作用,卡在无限循环中。

export class AppSidebarFooter {

  constructor(private el: ElementRef,private renderer:Renderer2) { }

  //wait for the component to render completely
  ngOnInit(): void {
    var nativeElement: HTMLElement = this.el.nativeElement,
    parentElement: HTMLElement = nativeElement.parentElement;
    // move all children out of the element
    while (nativeElement.firstChild) {
      this.renderer.insertBefore(parentElement,nativeElement.firstChild,nativeElement);
      this.renderer.removeChild(nativeElement,nativeElement.firstChild);        
      //parentElement.insertBefore(nativeElement.firstChild, nativeElement);
    }
    // remove the empty element(the host)
    this.renderer.removeChild(parentElement,nativeElement);
  }
}

任何解决方案?

0 个答案:

没有答案