2

我在 *ngFor 中有一个动态创建的组件,在将它们放入 ViewChildren 之后,如何获取它们的 offsettop 和 offsetleft。

模板

<anchor #myanchor></anchor>

班级

@ViewChildren('myanchor') anchors: QueryList<any>;

这是 ngAfterViewInit

ngAfterViewInit(){
    this.anchors.map(i=>{ console.log(i); })
}

我可以通过 ViewChild 获得单个元素的位置,但需要 ViewChildren 的帮助。任何指针将不胜感激。

4

1 回答 1

3
ngAfterViewInit(){
    this.anchors.toArray()
    .map(i=>{ console.log(i.nativeElement.offsetTop); })
}

如果#myanchor在组件或指令上而不是普通 DOM 元素上,则需要添加read以获取ElementRef

@ViewChildren('myanchor', {read: ElementRef}) anchors: QueryList<ElementRef>;

另请参阅angular 2 / typescript :获取模板中的元素

于 2017-01-26T07:01:18.603 回答