【发布时间】:2017-06-04 16:50:33
【问题描述】:
我正在尝试在我的模板中引用组件的元素,并且高度始终为 0。
export class LoginComponent {
@ViewChild("loginForm", {read: ElementRef})
loginForm;
constructor() {}
ngAfterViewInit() {
console.log("form height: ", this.loginForm.nativeElement.offsetHeight);
}
click() {
console.log("form height: ", this.loginForm.nativeElement.offsetHeight);
}
}
模板
<div class="modal-content"
[style.height.px]="contentHeight">
<login-form #loginForm
(click)="click()"
[class.active]="currentForm === 'login'">
</login-form>
<register-form
[class.active]="currentForm === 'register'">
</register-form>
<div #registerSuccess class="register-success"
[class.active]="currentForm === 'registerSuccess'">
Thank you for registering
</div>
</div>
这很奇怪,因为该元素渲染良好并占用空间,但即使在几秒钟后单击仍返回 0 的高度。
【问题讨论】:
-
我的内容孩子也有同样的问题。
-
我必须将主机元素设置为显示:块(因此在您的情况下是登录表单的主机元素)。也许这也有帮助