Я хочу знать, что функция Angular 2 обеспечивает способ определения устройства клиента (экран большого экрана, среднего или малого размера) или может быть шириной экрана, на основе которой может отображаться или скрываться некоторое содержимое (удален из дома).Angular 2 Media Queries
4
A
ответ
4
HostListener
Один из способов заключается в использовании HostListener декоратора. Выбранный метод будет вызываться, когда элемент хоста выдает указанное событие.
@HostListener('window:resize', ['$event'])
onResize(event) {
this.width = event.target.innerWidth;
this.height = event.target.innerHeight;
}
Via ngZone
Другой способ импортировать ngZone в компонент. Затем вы можете использовать NgZone
, чтобы проверить событие onresize
.
constructor(ngZone:NgZone) {
window.onresize = (e) => {
ngZone.run(() => {
this.width = window.innerWidth;
this.height = window.innerHeight;
});
};
}
После этого вы можете использовать атрибут [hidden]
, чтобы скрыть содержимое зависит от вашего значения ширина или высота.
4
Нет необходимости использовать NgZone. Есть более простые способы захвата события окна изменения размера.
@HostListener('window:resize', ['$event'])
onResize(event) {
const target = event.target;
this.width = target.innerWidth;
this.height = target.innerHeight;
}
или если вы хотите использовать, если из HTML
<div (window:resize)="onResize($event)"
onResize(event) {
event.target.innerWidth;
}
Смежные вопросы
- 1. jQuery media queries
- 2. Media Queries Display: none
- 3. javascript media queries
- 4. media queries not loading
- 5. CSS3 Media Queries
- 6. Media Queries Адаптивный дизайн
- 7. Bootstrap Media Queries
- 8. Media Queries div size
- 9. Media Queries, действующие странно
- 10. @media queries & smashingmagazine.com
- 11. Angular2 animations media queries
- 12. Media Queries не загружается
- 13. CSS Media Queries Шрифт
- 14. Zurb Foundation, Media Queries
- 15. CSS Media Queries -> Link vs @media
- 16. CSS Media Queries - не работает
- 17. css-media-queries, загружающий страницу
- 18. Css Media Queries Resolution Issue
- 19. Bootstrap Media Queries Rails Error
- 20. CSS Media Queries не сбросить
- 21. JQuery Mobile Panel & Media Queries
- 22. CSS Media Queries и селекторы
- 23. ios 7 media queries landscape
- 24. CSS3 Media Queries - консоль Chrome
- 25. xcode и ipad media queries
- 26. Writing Bootstrap 3 Media Queries
- 27. CSS Media Queries не работает
- 28. CSS3 Media Queries оптимизация изображения
- 29. @media queries и @viewport zoom
- 30. Играя с поплавком в CSS3 Media Queries
Большое вам спасибо за Максимилиана. Еще один вопрос: использует ли NgZone какие-либо накладные расходы или может вызвать любую проблему с производительностью? –
@NaveedAhmed Мое понимание заключается в том, что NgZone # run может использоваться в обработчике для некоторого асинхронного процесса, который выполняется за пределами обнаружения угловых изменений. В этом случае мы хотим реагировать на события onresize, которые выходят извне Angular, поэтому, чтобы реагировать на это событие в циклах обнаружения изменений углов, мы можем зарегистрировать слушателя для этого события в окне и использовать 'run 'планировать обработку, выполняемую из угловой зоны. TLDR, в то время как у вас могут быть проблемы с производительностью, если вы планируете слишком много логики для выполнения в зоне, этот пример выглядит нормально для меня. – Manningham