가 보자 크기 조정 이벤트 기간 동안 정의되지 않습니다ViewChild는
import {
Component, OnInit, ViewEncapsulation, Input, ElementRef, ViewChild, AfterViewInit
} from '@angular/core';
@Component({
selector: 'app-sidebar',
template: `
<aside #sidebar>
Sidebar
</aside>`,
})
export class AppSidebar implements OnInit, AfterViewInit {
@ViewChild('sidebar')
private sidebar: ElementRef;
constructor() {
}
ngOnInit() {
console.log('OnInit has:', this.sidebar)
window.addEventListener('resize', this.resetSidebar);
}
ngAfterViewInit() {
console.log('AfterViewInit has:', this.sidebar);
}
resetSidebar() {
console.log(this.sidebar);
}
}
this.sidebar
여기 휘발성이다. 라이프 사이클 후크 중에 올바르게 로그 아웃하지만, 창 크기를 조정하면 null이됩니다. 아니 camelCase problem, 아니 conditional dom, 그래서 코드가 잘못 됐어?
내가 resize'은 sidebar'이 설정되어'전에 이미 해고'추측을 사용할 수 있습니다
작업 유지합니다. 'ngOnInit()'에 가입했는데'sidebar'는 나중에 'ngAfterViewInit()'에서만 사용할 수 있습니다. –
그것은 중요하지 않습니다. 'ngAfterViewInit' 또는'ngAfterContentInit'에서 구독 할 때 - 결과는 같습니다. – user776686