Saya telah mencoba membangun bilah navigasi yang responsif dan tidak ingin menggunakan kueri media, jadi saya bermaksud menggunakan *ngIF
ukuran jendela sebagai kriteria. Tetapi saya telah menghadapi masalah karena saya tidak dapat menemukan metode atau dokumentasi apa pun tentang deteksi ukuran jendela Angular 4. Saya juga mencoba metode JavaScript, tetapi tidak didukung.
Saya juga telah mencoba yang berikut ini :
constructor(platform: Platform) {
platform.ready().then((readySource) => {
console.log('Width: ' + platform.width());
console.log('Height: ' + platform.height());
});
}
... yang digunakan dalam ionik.
Dan screen.availHeight
, tapi tetap tidak berhasil.
html
angular
dom-events
Ronit Oommen
sumber
sumber
platform
? Apakah ini tentang Ionic?Platform
adalah layanan ionik. Jadi saya rasa ini adalah proyek ionik?Jawaban:
Untuk mendapatkannya di init
Jika Anda ingin terus memperbaruinya saat diubah ukurannya:
sumber
ngAfterViewInit
metode kail hidup daripadangOnInit
metode kailJika Anda ingin bereaksi pada breakpoint tertentu (misalnya melakukan sesuatu jika lebarnya kurang dari 768px), Anda juga dapat menggunakan BreakpointObserver:
atau bahkan mendengarkan perubahan pada breakpoint itu:
sumber
if (result.matches)
jika tidak maka akan memanggil bahkan jika tidakcdk
memiliki ketergantungan rekan pada versi sudut tertentu. Like 7 untuk yang terbaru. Pokoknya saya bisa menggunakan ini untuk versi yang lebih lama (sudut 4 seperti dalam pertanyaan)?4.2.6
secara khusus. Tidak dapat menemukan versi cdk 2.x itu, hanya 4.1.x dan 4.3.x. Terima kasih!Jika Anda ingin komponen Anda mudah diuji, Anda harus menggabungkan objek global window dalam Angular Service:
Anda kemudian dapat menyuntikkannya seperti layanan lainnya:
Dan konsumsi ...
sumber
Dokumentasi untuk
Platform
width()
danheight()
, disebutkan bahwa metode ini menggunakanwindow.innerWidth
danwindow.innerHeight
masing - masing. Namun menggunakan metode lebih disukai karena dimensinya adalah nilai yang disimpan dalam cache, yang mengurangi kemungkinan pembacaan beberapa kali dan DOM yang mahal.sumber
width
of ? Logikanya, itu tidak harus bergantung pada seperti apa pohon dom itu.window
DOM
Ini adalah contoh layanan yang saya gunakan.
Anda bisa mendapatkan lebar layar dengan berlangganan
screenWidth$
, atau melaluiscreenWidth$.value
.Hal yang sama untuk
mediaBreakpoint$
(ataumediaBreakpoint$.value
)Semoga ini bisa membantu seseorang
sumber
Anda dapat menggunakan ini https://github.com/ManuCutillas/ng2-responsive Semoga membantu :-)
sumber
sumber
Jawabannya sangat sederhana. tulis kode di bawah ini
sumber
Anda dapat menggunakan metode pengambil skrip untuk skenario ini. Seperti ini
Dan gunakan itu di template seperti ini:
Anda tidak memerlukan pengendali kejadian untuk memeriksa pengubahan ukuran / jendela, metode ini akan memeriksa ukuran setiap saat secara otomatis.
sumber