Angular 2获取div的宽度

And*_*ard 8 typescript angular

我看了很多帖子,但没有完全按照我的意愿去做.我有一张超出页面宽度的桌子,由于各种原因我需要得到它的宽度.

我用了:

@ViewChild('tableToMeasure') elementView: ElementRef;
Run Code Online (Sandbox Code Playgroud)

然后将#tableToMeasure放在桌面上.然而,这似乎是错误的:

ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'nativeElement' of undefined
Run Code Online (Sandbox Code Playgroud)

即使这适用于页面的父div,也只能在页面的父div上工作.

有任何想法吗?我需要在页面加载和页面调整大小上获得它的宽度,并将另一个divs宽度更改为相同的值.

小智 6

@Component({
    selector: 'selector',
    template: `<button #tableToMeasure>Click me</button>`
})
export class FeatureComponent implements AfterViewInit {

    @ViewChild('tableToMeasure') elementView;

    constructor() {
    }

    ngAfterViewInit() {
        console.log(this.elementView.nativeElement);
    }
}
Run Code Online (Sandbox Code Playgroud)


Gün*_*uer 4

elementViewngAfterViewInit在调用之前不会被设置。如果您的代码ngOnInit或构造函数中有您的代码,您将收到此错误。