将顶部和左侧设置为ViewChild元素? Angular 4

时间:2017-10-24 10:21:00

标签: angular

我需要将offesetTop和offsetLeft设置为我的viewchild元素,以将其定位在另一个元素的悬停上。这是一个工具提示,所以这就是我的尝试:

<div (mouseover)="showPopup($event, price)"></div>
<div #tooltip>Some text</div>

这是我的div,在TS里面我有:

@ViewChild('tooltip') tooltip: ElementRef;

showPopup(event, price) {

    price.show = true;
    this.tooltip.nativeElement.offsetTop = event.target.offsetTop;
    this.tooltip.nativeElement.offsetLeft = event.target.offsetLeft;
  }

但是我收到以下错误:

无法指定只读属性&#39; offsetTop&#39;对象&#39; [对象HTMLDivElement]&#39; 。有什么建议吗?

1 个答案:

答案 0 :(得分:8)

offsetTopoffsetLeft只在浏览器中显示,与Angular没有任何关联。

也许这对你有用:

<div [style.top.px]="top" [style.left.px]="left">Some text</div>
class MyComponent {
  top: number;
  left: number;
}