Angular2 +中DOM访问的行为不一致

时间:2018-06-14 06:53:38

标签: javascript angular typescript

我通过动态创建的元素属性获得了这种非常奇怪的行为。

ngAfterViewInit() {
 // --- more dom manipulation ---
 this.viewport = document.createElement('div');
 // --- more dom manipulation ---
 this.wrapper.parentNode.insertBefore(this.viewport, this.wrapper); // <-- element inserted into DOM before checking width
 console.log(this.viewport);
 console.log(this.viewport.offsetWidth);
}

我创建一个div元素,插入它并读取它的属性。只有第一个控制台日志正确打印​​offsetWidth(我屏幕上的884)但是当我尝试直接打印offsetWidth时,它是0。

所有DOM更改都能正常工作,并在屏幕上产生预期效果,但这种对维度的编程访问除外。

offsetWidth ffs !!

注意:我知道直接dom操纵对于工人或SSR来说并不好,但这是我稍后会遇到的桥梁。此外,这些UX组件可以正确地进行预处理。

0 个答案:

没有答案