Angular 如何从子组件获取父组件中元素的偏移?

Angular 如何从子组件获取父组件中元素的偏移?,angular,Angular,我需要从我的子组件中获取父组件(基本布局)中定义的内容的偏移,以便我可以制作另一个具有相同大小的 我尝试这样做,但得到的无法读取未定义的属性“nativeElement” 以下是布局组件: <!-- Main content --> <div class="main" #mainContentArea> <!-- Breadcrumb --> <ol class="breadcrumb"> <app-br

我需要从我的子组件中获取父组件(基本布局)中定义的内容
的偏移,以便我可以制作另一个具有相同大小的

我尝试这样做,但得到的
无法读取未定义的属性“nativeElement”

以下是布局组件:

  <!-- Main content -->
  <div class="main" #mainContentArea>

    <!-- Breadcrumb -->
    <ol class="breadcrumb">
      <app-breadcrumbs></app-breadcrumbs>
    </ol>

    <div class="container-fluid">
      <router-outlet></router-outlet>
    </div><!-- /.conainer-fluid -->
  </div>

这可能吗?我需要使此容器与内容区域的大小相同,以实现文件上载的拖放功能。

要获得父级,您需要使用在构造函数中声明的属性,如下所示:

this.elRef.nativeElement.parentElement.offsetHeight;

正如我在命令中所说,您可以很容易地使用CSS实现这一点,但您说您希望访问父元素:

您可以通过访问
ChildComponent
nativeElement
parentNode
来执行此操作,如下所示(简化):

确保在
ngAfterViewInit
中使用它。它仍然可以在
ngOnInit
中工作,但如果父组件也有其他子组件,则可能会导致问题,因为它们不会同时初始化,并且您的
高度可能不同


希望有帮助。

你不能用css来做吗?将
设置为相对,并与子组件一起占据所有宽度/高度。
mainContentArea
不是组件的子级。这不行。你可以用你的
elRef
this.elRef.parentNode
那样联系你的父母你是对的,在这种情况下我可以用CSS来做这件事,但是我怎样才能访问母公司的元素呢?我发布了一个答案,希望我能有所帮助。
this.elRef.nativeElement.parentElement.offsetHeight;
constructor(private elRef:ElementRef) { 
}

ngAfterViewInit() {
    console.log(this.elRef.nativeElement.parentNode.offsetHeight);
}