Tenho tentado construir uma barra de navegação responsiva e não desejo usar uma consulta de mídia, então pretendo usar *ngIF
com o tamanho da janela como um critério. Mas tenho enfrentado um problema, pois não consigo encontrar nenhum método ou documentação sobre a detecção de tamanho de janela Angular 4. Também tentei o método JavaScript, mas não é compatível.
Eu também tentei o seguinte :
constructor(platform: Platform) {
platform.ready().then((readySource) => {
console.log('Width: ' + platform.width());
console.log('Height: ' + platform.height());
});
}
... que foi usado no iônico.
E screen.availHeight
, mas ainda sem sucesso.
html
angular
dom-events
Ronit Oommen
fonte
fonte
platform
? Isso é sobre Ionic?Platform
é um serviço Ionic. Suponho que seja um projeto Ionic?Respostas:
Para obtê-lo no init
Se você quiser mantê-lo atualizado no redimensionamento:
fonte
ngAfterViewInit
método dongOnInit
gancho de vida em vez do método do gancho de vidaSe você quiser reagir em certos pontos de interrupção (por exemplo, fazer algo se a largura for menor que 768px), você também pode usar BreakpointObserver:
ou mesmo ouvir as mudanças nesse ponto de interrupção:
fonte
if (result.matches)
caso contrário, ele chamará mesmo que nãocdk
depende de uma versão específica do angular. Tipo 7 para o mais recente. De qualquer forma posso usar isso para uma versão mais antiga (angular 4 como na pergunta)?4.2.6
especificamente. Não é possível encontrar uma versão cdk 2.x nisso, apenas 4.1.xe 4.3.x. Enfim, obrigado!Se você deseja que seus componentes permaneçam facilmente testáveis, você deve envolver o objeto de janela global em um serviço angular:
Você pode injetá-lo como qualquer outro serviço:
E consumir ...
fonte
A documentação para
Platform
width()
eheight()
, afirma-se que esses métodos usamwindow.innerWidth
e,window.innerHeight
respectivamente. Mas é preferível usar os métodos, pois as dimensões são valores em cache, o que reduz a chance de leituras DOM múltiplas e caras.fonte
width
dewindow
relacionarDOM
? Logicamente, não deve depender da aparência da árvore dom.Este é um exemplo de serviço que utilizo.
Você pode obter a largura da tela assinando
screenWidth$
ou viascreenWidth$.value
.O mesmo é para
mediaBreakpoint$
(oumediaBreakpoint$.value
)Espero que isso ajude alguém
fonte
você pode usar este https://github.com/ManuCutillas/ng2-responsive Espero que ajude :-)
fonte
fonte
A resposta é muito simples. escreva o código abaixo
fonte
Você pode usar o método getter typescript para este cenário. Como isso
E use isso em um modelo como este:
Você não precisará de nenhum manipulador de eventos para verificar o redimensionamento / da janela, este método verificará o tamanho todas as vezes automaticamente.
fonte