angular - viewchildren 的 offsettop 和 offsetleft

标签 angular offset viewchild

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

模板

<anchor #myanchor></anchor>

类别

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

这是 ngAfterViewInit

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

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

最佳答案

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 : get hold of an element in the template

关于angular - viewchildren 的 offsettop 和 offsetleft,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41867464/

相关文章:

angular - 在 forkJoin 中使用 mergeMap 来获取一个依赖于另一个的可观察对象

java - Java中compareTo的逻辑(offset的作用)

mysql - 在 MySQL 中计算时区的偏移量

angular - 来自父组件的 ngTemplateOutlet 的 ViewChild

html - Angular2 @ViewChild ElementRef offsetHeight 始终为 0

angular - 使用 ViewChild 访问 MatDrawer 在 Angular 8 中抛出错误

angular - Angular 2 组件中的重复 "id"属性

angular - 如何从 Angular 库中导出模型?

css - Foundation 仅对中等屏幕使用偏移量

unit-testing - 无法读取 Angular 2 中未定义的属性 'params'