Итак, ваша проблема разбита на два этапа. Один - вычислить высоту страницы , которая не является полем angular, а скорее , определяемой браузером c. Хотя браузеры действительно предоставляют свойства clientHeight или scrollHeight , но существует разница в том, как разные браузеры понимают фактическую высоту страницы.
Таким образом, лучшая практика (так как она также используется известной библиотекой jQuery) - это получить различные свойства высоты уровня документа и получить из них максимальное значение.
Вам потребуется ввести константу DOCUMENT , чтобы получить доступ к документу DOM в вашем компоненте. Пожалуйста, найдите приведенный ниже пример angular код компонента.
import { Component, OnInit, Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ]
})
export class AppComponent {
name = 'Angular';
public height = 0;
constructor(@Inject(DOCUMENT) private document: any){
}
ngOnInit() {
this.height = Math.max( this.document.body.scrollHeight, this.document.body.offsetHeight,
this.document.documentElement.clientHeight, this.document.documentElement.scrollHeight, this.document.documentElement.offsetHeight );
}
}
Теперь просто на стороне html вы можете проверить свойство высоты компонента и применить стиль по желанию. Примерно так ...
<div [ngStyle]="{'height': height>=200 ? '200px' : '60px' }"></div>
Спасибо.