Próbowałem zbudować responsywny pasek nawigacyjny i nie chcę używać zapytania o media, więc zamierzam użyć *ngIF
jako kryterium rozmiaru okna. Ale napotkałem problem, ponieważ nie mogę znaleźć żadnej metody ani dokumentacji dotyczącej wykrywania rozmiaru okna Angular 4. Próbowałem również metody JavaScript, ale nie jest ona obsługiwana.
Próbowałem również następujących rzeczy :
constructor(platform: Platform) {
platform.ready().then((readySource) => {
console.log('Width: ' + platform.width());
console.log('Height: ' + platform.height());
});
}
... który był używany w jonowym.
I screen.availHeight
, ale nadal bez sukcesu.
html
angular
dom-events
Ronit Oommen
źródło
źródło
platform
chodzi? Czy chodzi o Ionic?Platform
jest usługą jonową. Więc zgaduję, że to projekt Ionic?Odpowiedzi:
Aby uzyskać to na init
Jeśli chcesz, aby był aktualizowany przy zmianie rozmiaru:
źródło
ngAfterViewInit
metody haka na życie zamiast metody nangOnInit
życieJeśli chcesz zareagować na określone punkty przerwania (np. Zrobić coś, jeśli szerokość jest mniejsza niż 768px), możesz również użyć BreakpointObserver:
lub nawet posłuchaj zmian w tym punkcie przerwania:
źródło
if (result.matches)
przeciwnym razie zadzwoni, nawet jeśli niecdk
ma to zależność równorzędną od określonej wersji kątowej. Jak 7, jeśli chodzi o najnowsze. Zresztą mogę tego użyć do starszej wersji (kątowej 4 jak w pytaniu)?4.2.6
szczególności ng . Nie można znaleźć wersji cdk 2.x, tylko 4.1.x i 4.3.x. W każdym razie, dzięki!Jeśli chcesz, aby komponenty były łatwe do testowania, powinieneś opakować globalny obiekt okna w usługę Angular:
Następnie możesz wstrzyknąć go jak każdą inną usługę:
I konsumuj ...
źródło
W dokumentacji dla
Platform
width()
iheight()
stwierdzono, że te metody używają odpowiedniowindow.innerWidth
iwindow.innerHeight
. Jednak preferowane jest używanie tych metod, ponieważ wymiary są wartościami zapisanymi w pamięci podręcznej, co zmniejsza ryzyko wielokrotnych i kosztownych odczytów DOM.źródło
width
zwindow
dotyczyćDOM
? Logicznie rzecz biorąc, nie powinno zależeć od tego, jak wygląda drzewo dom.To jest przykład usługi, z której korzystam.
Możesz uzyskać szerokość ekranu, subskrybując
screenWidth$
lub przezscreenWidth$.value
.To samo dotyczy
mediaBreakpoint$
(lubmediaBreakpoint$.value
)Mam nadzieję, że to komuś pomoże
źródło
możesz użyć tego https://github.com/ManuCutillas/ng2-responsive Mam nadzieję, że to pomoże :-)
źródło
źródło
Odpowiedź jest bardzo prosta. napisz poniższy kod
źródło
W tym scenariuszu można użyć metody pobierającej tekst. Lubię to
I użyj tego w szablonie w ten sposób:
Nie będziesz potrzebować żadnego programu obsługi zdarzeń, aby sprawdzić zmianę rozmiaru / okna, ta metoda sprawdzi rozmiar za każdym razem automatycznie.
źródło