Ich habe versucht, eine reaktionsschnelle Navigationsleiste zu erstellen, und möchte keine Medienabfrage verwenden. Daher beabsichtige ich, *ngIF
die Fenstergröße als Kriterium zu verwenden. Ich hatte jedoch ein Problem, da ich keine Methode oder Dokumentation zur Erkennung der Angular 4-Fenstergröße finden konnte. Ich habe auch die JavaScript-Methode ausprobiert, sie wird jedoch nicht unterstützt.
Ich habe auch folgendes versucht :
constructor(platform: Platform) {
platform.ready().then((readySource) => {
console.log('Width: ' + platform.width());
console.log('Height: ' + platform.height());
});
}
... die in ionischen verwendet wurde.
Und screen.availHeight
doch immer noch kein Erfolg.
html
angular
dom-events
Ronit Oommen
quelle
quelle
platform
? Geht es um Ionic?Platform
ist ein ionischer Dienst. Ich vermute also, dass es ein ionisches Projekt ist?Antworten:
Um es auf init zu bekommen
Wenn Sie die Größe ändern möchten:
quelle
ngAfterViewInit
Life-Hook-Methode anstelle derngOnInit
Life-Hook-Methode zu verwendenWenn Sie auf bestimmte Haltepunkte reagieren möchten (z. B. etwas tun, wenn die Breite weniger als 768 Pixel beträgt), können Sie auch BreakpointObserver verwenden:
oder hören Sie sich sogar Änderungen an diesem Haltepunkt an:
quelle
if (result.matches)
Andernfalls wird er aufgerufen, auch wenn dies nicht dercdk
Peer-Abhängigkeit von einer bestimmten Version des Winkels hat. Wie 7 für die neuesten. Wie auch immer, ich kann dies für ältere Versionen verwenden (Winkel 4 wie in der Frage)?4.2.6
speziell. Es kann keine CDK 2.x-Version gefunden werden, nur 4.1.x und 4.3.x. Trotzdem danke!Wenn Sie möchten, dass Ihre Komponenten leicht testbar bleiben, sollten Sie das globale Fensterobjekt in einen Angular Service einbinden:
Sie können es dann wie jeden anderen Dienst injizieren:
Und konsumieren ...
quelle
Die Dokumentation
Platform
width()
undheight()
es wird gesagt , dass diese Methoden verwendenwindow.innerWidth
undwindow.innerHeight
jeweils. Die Verwendung der Methoden wird jedoch bevorzugt, da die Dimensionen zwischengespeicherte Werte sind, was die Wahrscheinlichkeit mehrerer und teurer DOM-Lesevorgänge verringert.quelle
width
von ? Logischerweise sollte es nicht davon abhängen, wie der Dombaum aussieht.window
DOM
Dies ist ein Beispiel für einen Dienst, den ich benutze.
Sie können die Bildschirmbreite durch Abonnieren
screenWidth$
oder über abrufenscreenWidth$.value
.Das gleiche gilt für
mediaBreakpoint$
(odermediaBreakpoint$.value
)Hoffe das hilft jemandem
quelle
Sie können diese https://github.com/ManuCutillas/ng2-responsive verwenden Ich hoffe, es hilft :-)
quelle
quelle
Die Antwort ist sehr einfach. Schreiben Sie den folgenden Code
quelle
Sie können für dieses Szenario die Typoskript-Getter-Methode verwenden. So was
Und verwenden Sie das in Vorlage wie folgt:
Sie benötigen keinen Ereignishandler, um die Größe des Fensters zu überprüfen. Diese Methode überprüft jedes Mal automatisch die Größe.
quelle