3

我想从另一个子组件中获取“body”元素。
如何从子组件中获取 body 元素?
因为我想将类附加并删除到正文窗体子组件。

4

1 回答 1

3

我可以建议一种解决方法,您可以在其中遍历直到获得body元素。并且您可以使用Renderer2这样代码也可以与服务器端渲染一起顺畅地工作。

getParentNode (node) {
     //make sure you inject Render2 inside constructor.
     return this.renderer.parentNode(node);
}

getBodyElement (element) {
    let currentElement = element;
    // below can be optimised to have single `getParentNode` method call.
    while(this.getParentNode(currentElement)&& this.getParentNode(currentElement).nodeName != 'HTML'){
      currentElement = this.getParentNode(currentElement)
    }
    return currentElement
}

ngOnit() {
   let bodyElement = this.getBodyElement(this.elementRef.nativeElement)
}
于 2018-09-16T16:05:00.773 回答