テンプレートのdivのサイズが変更されたときに何らかのアクションを実行する最も良い方法は何ですか?ウィンドウのサイズを変更すると、divのサイズが変更されます。 Rxjs Observable/Subscribeや他の方法がありますか?要素のサイズが角2で変化したときの観察方法
テンプレート:
<div #eMainFrame class="main-frame">
...
</div>
コンポーネント:
@Component({
selector: 'app-box',
templateUrl: './box.component.html',
styleUrls: ['./box.component.css']
})
export class BoxComponent implements OnInit {
@ViewChild('eMainFrame') eMainFrame : ElementRef;
constructor(){}
ngOnInit(){
// This shows the elements current size
console.log(this.eMainFrame.nativeElement.offsetWidth);
}
}
更新されたコンポーネント(ウィンドウサイズが変更された場合、この例では、検出)
constructor(ngZone: NgZone) {
window.onresize = (e) => {
ngZone.run(() => {
clearTimeout(this.timerWindowResize);
this.timerWindowResize = setTimeout(this._calculateDivSize, 100);
});
}
}
_calculateDivSize(){
console.log(this.eMainFrame.nativeElement.offsetWidth);
}
が、これは私にエラーを与え:
EXCEPTION: Cannot read property 'nativeElement' of undefined
使用します。私は、このチェックを行うには良い場所だと思いますか?これは役立ちます:http://stackoverflow.com/questions/21170607/angularjs-bind-to-directive-resize – Rajesh