Angular 为什么容器大小设置在ngOnInit上不起作用?

Angular 为什么容器大小设置在ngOnInit上不起作用?,angular,events,event-listener,ngoninit,Angular,Events,Event Listener,Ngoninit,我使用以下命令来设置容器的大小: ngOnInit() { this.innerWidth = document.getElementById("Cont").clientWidth; this.containerWidth = this.innerWidth; console.log("init"); } @HostListener('window:resize', ['$event']) onResize(event) { this.innerWidth = document.getE

我使用以下命令来设置容器的大小:

ngOnInit() {

this.innerWidth = document.getElementById("Cont").clientWidth;
this.containerWidth = this.innerWidth;
console.log("init");
}

@HostListener('window:resize', ['$event'])
onResize(event) {

this.innerWidth = document.getElementById("Cont").clientWidth;
this.containerWidth = this.innerWidth;
}
当我加载页面时,容器比窗口大,因此我必须滚动,在按预期调整窗口大小后,一切正常,无需再滚动。有趣的是,我在控制台中看到消息“init”,这意味着代码已经执行

为什么容器的大小不在单位内


谢谢大家!

我认为您需要使用CSS来管理这一点。但如果您需要使用选择器访问dom元素,请使用ngAfterViewInit生命周期挂钩

试试这个

ngAfterViewInit() {
     this.innerWidth = document.getElementById("Cont").clientWidth;
     this.containerWidth = this.innerWidth;
  } 

希望能有帮助

我可能认为这是因为观点还不稳定。您是否在ngOnit之后提交了一些内容?谢谢您的回复!我发现了这个问题,ngOnInit中确实有另一个命令与主命令相冲突……很高兴知道问题已经解决了!祝你好运@你们能把答案贴出来让OP接受并投票吗@事实上,我并没有给出正确的答案——只是一些建议需要检查