Angular 13 Определение ширины и высоты экрана
Была поставлена задача создать адаптивный макет; однако мне не разрешили воспользоваться помощью медиа запросов CSS ; с другой стороны, я не должен был использовать директиву *ngIf при изменении размера окна.
Итак, я решил использовать Angular для определение размера окна с помощью API HostListener.
Иногда вам может потребоваться выполнить задачи разработчика в зависимости от конкретного размера экрана, это может быть что угодно, например, добавление класса, добавление стиля или вызов любой функции.
В Angular получение размера окна в реальном времени при изменении размера экрана невероятно просто. В этом проекте мы узнаем, как определить ширину и высоту экрана в Angular с помощью декоратора HostListener.
HostListener - это декоратор, используемый для прослушивания DOM, и он предоставляет метод обработчика для запуска при возникновении этого события.
Angular вызывает предоставленный метод обработчика, когда хост-элемент генерирует именованное событие и обновляет связанный элемент результатом.
Итак, давайте начнем и разберемся, как получить высоту и ширину окна в приложении Angular 13.
Как получить ширину и высоту экрана при изменении размера окна в Angular
- Шаг 1: Установите интерфейс командной строки Angular
- Шаг 2: Загрузите проект Angular
- Шаг 3: Обновить шаблон компонента
- Шаг 4: Обновить HTML-шаблон
- Шаг 5: Запустить приложение Angular
Установить интерфейс командной строки Angular
Разработка Angular основана исключительно на интерфейсе командной строки Angular; вы должны убедиться, что у вас установлен необходимый инструмент.
Если нет, то выполните команду для установки интерфейса командной строки Angular (CLI).
npm install -g @angular/cli
Скачать Angular проект
На этом этапе вам необходимо загрузить приложение angular с помощью приведенной ниже команды.
Однако вы можете полностью пропустить этот шаг, если установили приложение заранее.
ng new ng-demo
Затем перейдите в каталог проекта.
cd ng-demo
Установите и зарегистрируйте Bootstrap в приложении Angular 13:
npm install bootstrap
Добавьте CSS начальной загрузки в файл angular.json:
...
...
"styles": [
"node_modules/bootstrap/dist/css/bootstrap.min.css",
"src/styles.scss"
],
...
...
Обновить шаблон компонента
Импортируйте API-интерфейс HostListener из пакета "@angular/core", определите переменные getScreenWidth и getScreenHeight, используйте HostListener для привязки окна к событию изменения размера, чтобы получить размер и ширину экрана при изменении размера окна.
Обновите код в файле src/app/app.component.ts.
import { Component, HostListener } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
public getScreenWidth: any;
public getScreenHeight: any;
ngOnInit() {
this.getScreenWidth = window.innerWidth;
this.getScreenHeight = window.innerHeight;
}
@HostListener('window:resize', ['$event'])
onWindowResize() {
this.getScreenWidth = window.innerWidth;
this.getScreenHeight = window.innerHeight;
}
}
Обновить HTML-шаблон
На этом шаге вам нужно открыть файл шаблона HTML angular и определить переменные с помощью двойных фигурных скобок для вывода размера экрана или окна в браузере.
Пожалуйста, обновите код в файле src/app/app.component.html.
<div class="container text-center mt-5">
<h3 class="text-center btn-primary mt-3 mb-3 pt-2 pb-2" >Angular 13 Определение ширины и высоты экрана</h3>
<div class="text-center btn-success btn-lg btn-block mt-3 mb-3 pt-2 pb-2">Ширина экрана: {{ getScreenWidth }}</div>
<div class="text-center btn-success btn-lg btn-block mt-3 mb-3 pt-2 pb-2">Высота экрана: {{ getScreenHeight }}</div>
</div>
Запустить приложение Angular
Все необходимые шаги были выполнены, теперь вам нужно ввести заданную команду и нажать enter, чтобы запустить сервер приложений angular.
ng serve
Теперь откройте браузер, введите указанный URL-адрес, нажмите "Ввод" и просмотрите размер экрана при изменении размера окна в angular.
http://localhost:4200

Вывод
В этом Angular проекте мы выполнили важные шаги и узнали, как получить адаптивные размеры экрана, когда пользователь изменяет размер окна или изменяет размер экрана.