我需要知道渲染元素的高度。我不关心元素是否报告它或父母是否检测到高度。
我一直在研究这个问题,我的第一个根本原因是:host元素必须设置display:block
并且我已经完成了。 (我是否在适当的水平上做到了?)
this.nativeElement
将很好的信息转储到console.log但是当我尝试以编程方式访问该值时,它出现“0”。
文件:
IMG-fader.component.html
<img [src]='imgSrc' class="item carousel-item" style="width: 100%; display: block;"/>
IMG-fader.component.css
:host {
display: block;
}
img.carousel-item {
position: absolute;
left: 0;
}
img-fader.component.ts(重要部分)
export class ImgFaderComponent implements AfterViewInit {
@ContentChildren(ImgFaderComponent, {read: ElementRef}) imgList: QueryList<ElementRef>;
constructor() {}
ngAfterViewInit() {
this.imgList.forEach(img => console.log('Img: ', img.nativeElement.children[0].offsetHeight));
}
}
答案 0 :(得分:0)
如果有人仍在为图像offsetHeight解决类似问题,我发现如果使用 setTimeout 函数包装命令以获取offsetHeight,则可以得到图像高度(和宽度I应该)。
之所以发生这种情况,是因为异步命令运行到下一个周期,因此映像已加载。