Ember.js: Router `transition.retry` dengan segmen dinamis dan `refreshModel` queryParams menyebabkan kesalahan tak terduga

Dibuat pada 19 Sep 2018  ·  3Komentar  ·  Sumber: emberjs/ember.js

Tampaknya terkait dengan #10945.

Kasus penggunaan saya adalah: ketika pengguna mencoba menavigasi dengan token yang kedaluwarsa (dengan membiarkan jendela terbuka cukup lama) panggilan API akan gagal dengan kesalahan yang tidak sah. Kami menambahkan beberapa logika ke tindakan kesalahan Aplikasi untuk menangkap jenis kesalahan ini, mengautentikasi ulang pengguna dan mencoba lagi transisi setelah autentikasi. Masalahnya adalah ketika saya mencoba transition.retry() ke rute dengan segmen dinamis dan parameter kueri dengan refreshModel , itu akan gagal dengan kesalahan di bawah ini:

You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route [route name]

Jika saya mengatur param kueri saya ke refreshModel: false , itu berfungsi dengan baik.

Berikut twiddle yang dapat direproduksi: https://ember-twiddle.com/e25fc434b6e1c1627e553b8120203655?openFiles=routes.dynamic-segment.js%2C
Anda dapat melihat kesalahan saat mengeklik tautan 'Segmen dinamis dengan param kueri'. Jika Anda mengubah refreshModel menjadi false pada /routes/dynamic-segment.js itu berfungsi.

Bantuan apa pun dihargai. Terima kasih!

Has Reproduction Router Bugs

Komentar yang paling membantu

@krukid - Masalah yang Anda sebutkan tampaknya agak tidak terkait dengan yang asli sedang dibahas di sini (saya pikir). Apakah Anda keberatan mengajukan masalah baru untuk itu?

@rreckonerr baru-baru ini memperbaiki bug yang agak terkait (di mana kami tidak akan memasukkan nilai asli saat melakukan transisi perantara), ini tampaknya agak terkait. Saya pikir langkah pertama di sini adalah membuat test case yang gagal di router.js...

Semua 3 komentar

Saya mengalami hal serupa ketika mencoba transition.retry() Transisi yang dipicu oleh Route.refresh() mana queryParamsOnly: true

Saya kira ini entah bagaimana terkait dengan #16921

Saya menemukan bahwa Route#refresh() menghasilkan transisi yang tidak dapat dicoba lagi jika ada segmen dinamis.

Inilah kasus penggunaan saya: https://ember-twiddle.com/6d2f981f6628a3260db8cafd3b3aac0a?openFiles=routes.flopping-route%5C.js%2C

@krukid - Masalah yang Anda sebutkan tampaknya agak tidak terkait dengan yang asli sedang dibahas di sini (saya pikir). Apakah Anda keberatan mengajukan masalah baru untuk itu?

@rreckonerr baru-baru ini memperbaiki bug yang agak terkait (di mana kami tidak akan memasukkan nilai asli saat melakukan transisi perantara), ini tampaknya agak terkait. Saya pikir langkah pertama di sini adalah membuat test case yang gagal di router.js...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat