He estado tratando de construir una barra de navegación receptiva y no deseo usar una consulta de medios, por lo que tengo la intención de usarla *ngIF
con el tamaño de la ventana como criterio. Pero he tenido un problema porque no puedo encontrar ningún método o documentación sobre la detección del tamaño de la ventana de Angular 4. También probé el método JavaScript, pero no es compatible.
También probé lo siguiente :
constructor(platform: Platform) {
platform.ready().then((readySource) => {
console.log('Width: ' + platform.width());
console.log('Height: ' + platform.height());
});
}
... que se usó en iónico.
Y screen.availHeight
, pero aún sin éxito.
html
angular
dom-events
Ronit Oommen
fuente
fuente
platform
trata? ¿Se trata de Ionic?Platform
es un servicio iónico. ¿Entonces supongo que es un proyecto Ionic?Respuestas:
Para conseguirlo en init
Si desea mantenerlo actualizado al cambiar el tamaño:
fuente
ngAfterViewInit
método dengOnInit
gancho de vida en lugar del método de gancho de vidaSi desea reaccionar en ciertos puntos de interrupción (por ejemplo, hacer algo si el ancho es menor a 768px), también puede usar BreakpointObserver:
o incluso escuchar los cambios en ese punto de interrupción:
fuente
if (result.matches)
contrario, llamará incluso si no lo hacecdk
tiene dependencia de pares en una versión específica de angular. Como 7 para lo último. De todos modos, ¿puedo usar esto para la versión anterior (angular 4 como en la pregunta)?4.2.6
específicamente. No puedo encontrar una versión de cdk 2.x en eso, solo 4.1.xy 4.3.x. ¡Gracias de todos modos!Si desea que sus componentes sigan siendo fácilmente probables, debe envolver el objeto de ventana global en un servicio angular:
Luego puede inyectarlo como cualquier otro servicio:
Y consumir ...
fuente
La documentación de
Platform
width()
yheight()
, se indica que estos métodos usanwindow.innerWidth
ywindow.innerHeight
respectivamente. Pero se prefiere usar los métodos ya que las dimensiones son valores en caché, lo que reduce la posibilidad de lecturas DOM múltiples y costosas.fuente
width
de ? Lógicamente, no debería depender del aspecto del árbol dom.window
DOM
Este es un ejemplo de servicio que utilizo.
Puede obtener el ancho de la pantalla suscribiéndose ao
screenWidth$
víascreenWidth$.value
.Lo mismo es para
mediaBreakpoint$
(omediaBreakpoint$.value
)Espero que esto ayude a alguien
fuente
puede usar este https://github.com/ManuCutillas/ng2-responsive Espero que ayude :-)
fuente
fuente
La respuesta es muy simple. escribe el siguiente código
fuente
Puede utilizar el método getter de mecanografiado para este escenario. Me gusta esto
Y usa eso en una plantilla como esta:
No necesitará ningún controlador de eventos para verificar el cambio de tamaño / de la ventana, este método verificará el tamaño cada vez automáticamente.
fuente