Я пытался создать гибкую навигационную панель и не хочу использовать медиа-запросы, поэтому я намерен использовать *ngIF
размер окна в качестве критерия. Но я столкнулся с проблемой, так как я не могу найти какой-либо метод или документацию по определению размера окна Angular 4. Я также пробовал использовать метод JavaScript, но он не поддерживается.
Я также пробовал следующее :
constructor(platform: Platform) {
platform.ready().then((readySource) => {
console.log('Width: ' + platform.width());
console.log('Height: ' + platform.height());
});
}
... который использовался в ionic.
И screen.availHeight
, но все равно безуспешно.
html
angular
dom-events
Ронит Оммен
источник
источник
platform
? Это про ионный?Platform
это ионный сервис. Итак, я предполагаю, что это ионный проект?Ответы:
Чтобы получить его при инициализации
Если вы хотите обновлять его при изменении размера:
источник
ngAfterViewInit
метод крюка жизни вместоngOnInit
метода крюка жизниЕсли вы хотите реагировать на определенные точки останова (например, сделать что-нибудь, если ширина меньше 768 пикселей), вы также можете использовать BreakpointObserver:
или даже послушайте изменения в этой точке останова:
источник
if (result.matches)
иначе он вызовет, даже если это не такcdk
одноранговая зависимость от конкретной версии angular. Вроде 7 на последнюю. В любом случае я могу использовать это для более старой версии (angular 4, как в вопросе)?4.2.6
. Не могу найти версию cdk 2.x на этом, только 4.1.x и 4.3.x. В любом случае, спасибо!Если вы хотите, чтобы ваши компоненты оставались легко тестируемыми, вам следует обернуть глобальный объект окна в Angular Service:
Затем вы можете ввести его, как любой другой сервис:
И потреблять ...
источник
В документации для
Platform
width()
иheight()
указано, что эти методы используютwindow.innerWidth
иwindow.innerHeight
соответственно. Но использование этих методов предпочтительнее, поскольку измерения представляют собой кэшированные значения, что снижает вероятность многократного и дорогостоящего чтения DOM.источник
width
отwindow
связаныDOM
? По логике, это не должно зависеть от того, как выглядит дерево доменов.Это пример сервиса, которым я пользуюсь.
Вы можете получить ширину экрана, подписавшись на
screenWidth$
или черезscreenWidth$.value
.То же самое для
mediaBreakpoint$
(илиmediaBreakpoint$.value
)Надеюсь, это кому-то поможет
источник
вы можете использовать это https://github.com/ManuCutillas/ng2-responsive Надеюсь, это поможет :-)
источник
Ответ очень простой. напишите приведенный ниже код
источник
источник
Для этого сценария вы можете использовать метод получения машинописного текста. Как это
И используйте это в шаблоне следующим образом:
Вам не понадобится обработчик событий для проверки изменения размера / размера окна, этот метод будет проверять размер каждый раз автоматически.
источник