saya sedang mengajukan...
Apakah Anda ingin meminta fitur atau melaporkan bug ?
Apakah mungkin untuk memulai dragscroll dari indeks lain selain 0?
Apa perilaku saat ini?
Saat ini, dragscroll dimulai dari gambar/komponen pertama secara default.
Apa motivasi / kasus penggunaan untuk mengubah perilaku?
Akan lebih baik untuk memilih indeks tempat memulai dragscroll (saat memuat).
Anda sebenarnya dapat mencapai pengaturan indeks awal dengan memanggil moveTo
di blok `ngAfterViewInit. Pastikan untuk menutup panggilan dengan setTimeout(() => {...}, 0);
Sebagai contoh:
@ViewChild('nav', {read: DragScrollComponent}) ds: DragScrollComponent;
ngAfterViewInit() {
setTimeout(() => {
this.ds.moveTo(3);
}, 0);
}
sudah mencoba .., sayangnya saya mendapatkan kesalahan ini setiap kali:
core.js:1673 ERROR TypeError: Cannot read property '_elementRef' of undefined
at DragScrollComponent.push../node_modules/ngx-drag-scroll/lib/ngx-drag-scroll.js.DragScrollComponent.maximumIndex (ngx-drag-scroll.js:415)
at DragScrollComponent.push../node_modules/ngx-drag-scroll/lib/ngx-drag-scroll.js.DragScrollComponent.moveTo (ngx-drag-scroll.js:214)
at myComponent.component.ts:141
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:421)
at Object.onInvokeTask (core.js:3815)
at ZoneDelegate.push../node_modules/zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:420)
at Zone.push../node_modules/zone.js/dist/zone.js.Zone.runTask (zone.js:188)
at push../node_modules/zone.js/dist/zone.js.ZoneTask.invokeTask (zone.js:496)
at ZoneTask.invoke (zone.js:485)
at timer (zone.js:2054)
Apakah Anda menelepon moveTo
dalam blok ngAfterViewInit
? Metode moveTo
dapat dipanggil saat elemen carousel gulir gulir terlihat di halaman.
Atau Anda dapat menambahkan sedikit penundaan dan coba lagi seperti:
setTimeout(() => {
this.ds.moveTo(3);
}, 1000);
beri tahu saya jika itu berhasil.
Aku melakukannya. Tetapi dengan batas waktu 1 detik sekarang berfungsi! Terima kasih atas bantuannya, meskipun agak retas.
Hmm, tanpa melihat kodenya saya tidak tahu mengapa ngAfterViewInit
tidak bekerja untuk Anda. Saya akan mengatakan gunakan setTimeout
untuk saat ini sampai fitur ini keluar. Sebuah PR lebih dari diterima.
Anda sebenarnya dapat mencapai pengaturan indeks awal dengan memanggil
moveTo
di blok `ngAfterViewInit. Pastikan untuk menutup panggilan dengan setTimeout(() => {...}, 0);
Sebagai contoh:@ViewChild('nav', {read: DragScrollComponent}) ds: DragScrollComponent; ngAfterViewInit() { setTimeout(() => { this.ds.moveTo(3); }, 0); }
Hai tolong tambahkan fitur ini dalam dokumentasi.
jika saya menggunakan solusi ini, pengguna akan melihat animasi dengan item pertama pindah ke item tertentu.
Saya akan menyarankan di bawah ini. Apakah Anda pikir jika itu baik-baik saja?
ngAfterViewInit(){
setTimeout(()=>{
this.ds.currIndex = 3;
this.ds._elementRef.nativeElement.children[0].scrollLeft = someValue;
}, 10);
}
Komentar yang paling membantu
Anda sebenarnya dapat mencapai pengaturan indeks awal dengan memanggil
moveTo
di blok `ngAfterViewInit. Pastikan untuk menutup panggilan dengan setTimeout(() => {...}, 0);Sebagai contoh: