J'ai essayé de créer une barre de navigation réactive et je ne souhaite pas utiliser de requête multimédia, j'ai donc l'intention d'utiliser *ngIF
la taille de la fenêtre comme critère. Mais j'ai rencontré un problème car je ne trouve aucune méthode ou documentation sur la détection de la taille de la fenêtre Angular 4. J'ai également essayé la méthode JavaScript, mais elle n'est pas prise en charge.
J'ai également essayé ce qui suit :
constructor(platform: Platform) {
platform.ready().then((readySource) => {
console.log('Width: ' + platform.width());
console.log('Height: ' + platform.height());
});
}
... qui a été utilisé en ionique.
Et screen.availHeight
, mais toujours pas de succès.
html
angular
dom-events
Ronit Oommen
la source
la source
platform
il? S'agit-il d'Ionic?Platform
est un service ionique. Alors je suppose que c'est un projet ionique?Réponses:
Pour l'obtenir sur init
Si vous voulez le garder à jour lors du redimensionnement:
la source
ngAfterViewInit
la méthode dungOnInit
crochet de vie au lieu de la méthode du crochet de vieSi vous souhaitez réagir sur certains points d'arrêt (par exemple, faites quelque chose si la largeur est inférieure à 768px), vous pouvez également utiliser BreakpointObserver:
ou même écouter les modifications apportées à ce point d'arrêt:
la source
if (result.matches)
sinon il appellera même si ce n'est pas le cascdk
a une dépendance de pair sur une version spécifique d'angular. Comme 7 pour le dernier. Quoi qu'il en soit, je peux l'utiliser pour une version plus ancienne (angulaire 4 comme dans la question)?4.2.6
spécifiquement. Impossible de trouver une version cdk 2.x à ce sujet, seulement 4.1.x et 4.3.x. Bref, merci!Si vous souhaitez que vos composants restent facilement testables, vous devez envelopper l'objet de fenêtre globale dans un service angulaire:
Vous pouvez ensuite l'injecter comme n'importe quel autre service:
Et consommez ...
la source
La documentation pour
Platform
width()
etheight()
, il est indiqué que ces méthodes utilisent respectivementwindow.innerWidth
etwindow.innerHeight
. Mais l'utilisation des méthodes est préférable car les dimensions sont des valeurs mises en cache, ce qui réduit le risque de lectures DOM multiples et coûteuses.la source
width
de sewindow
rapporter àDOM
? Logiquement, cela ne devrait pas dépendre de ce à quoi ressemble l'arbre dom.Ceci est un exemple de service que j'utilise.
Vous pouvez obtenir la largeur de l'écran en vous abonnant à
screenWidth$
ou viascreenWidth$.value
.La même chose est pour
mediaBreakpoint$
(oumediaBreakpoint$.value
)J'espère que cela aide quelqu'un
la source
vous pouvez utiliser ce https://github.com/ManuCutillas/ng2-responsive J'espère que cela aide :-)
la source
la source
La réponse est très simple. écrivez le code ci-dessous
la source
Vous pouvez utiliser la méthode getter dactylographiée pour ce scénario. Comme ça
Et utilisez-le dans un modèle comme celui-ci:
Vous n'aurez besoin d'aucun gestionnaire d'événements pour vérifier le redimensionnement / de la fenêtre, cette méthode vérifiera automatiquement la taille à chaque fois.
la source