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

Javascript Angular2+;中的DOM访问行为不一致;,javascript,angular,typescript,Javascript,Angular,Typescript,我在动态创建元素属性时遇到了这种非常奇怪的行为 ngAfterViewInit() { // --- more dom manipulation --- this.viewport = document.createElement('div'); // --- more dom manipulation --- this.wrapper.parentNode.insertBefore(this.viewport, this.wrapper); // <-- element inse

我在动态创建元素属性时遇到了这种非常奇怪的行为

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);
}
ngAfterViewInit(){
//---更多dom操作---
this.viewport=document.createElement('div');
//---更多dom操作---

this.wrapper.parentNode.insertBefore(this.viewport,this.wrapper);//这是正确的行为。您可以在第一个控制台中看到变异的属性,因为
console.log(this.viewport)的结果。
一旦您单击objecttrued,插入后将执行重新查询,仍然为0。
console.log(document.querySelector(“.app carousel viewport”).offsetWidth);
我需要等待DOM完全呈现它吗?在您的示例中,您在控制台日志之后对值进行了变异,但在我的代码中,我在检查元素宽度之前已清楚地插入了元素。在stackblitz上创建一个示例,以便我可以帮助您