Ember.js: Tidak dapat menyetel rute 'kesalahan' di 2.10

Dibuat pada 29 Nov 2016  ·  29Komentar  ·  Sumber: emberjs/ember.js

Ember.js menyetel rute 'kesalahan' secara default, tetapi pengenal rute tidak mengizinkan rute duplikat lagi:
https://github.com/tildeio/route-recognizer/blame/5d54688f04273d3a921470b903a36266dddcdaf2/dist/route-recognizer.js#L525 -L531

Melakukannya akan memberi Anda halaman kosong dengan kesalahan di konsol Anda:

Uncaught Error: You may not add a duplicate route named `error`

Rute 'kesalahan' default ditetapkan di sini:
https://github.com/emberjs/ember.js/blob/10857fd98008bb47bd63bfe3d21b0fc224a197a5/packages/ember-routing/lib/system/dsl.js#L49 -L50

Anda dapat mengujinya dengan mencoba menangani rute error menggunakan ember g route error .
Fungsionalitas ini bekerja dengan baik di 2.9.

Bug Ember 2.10 Has Reproduction

Komentar yang paling membantu

Diperbaiki di 2.11.1

Semua 29 komentar

@ diamondo25 Bisakah Anda mereproduksi di Twiddle?

Saya melihat ini juga dan saya tidak ingat pernah melihatnya di versi beta terbaru dari kemarin

Kelihatannya mantap. Ini berkat perubahan route-recognizer saya buat. Perlu mengunci pembuatan default jika pengguna telah membuatnya. (Saya tahu bagaimana memperbaikinya, akan mendapatkannya.)

@nathanhammond terima kasih telah memperbaiki begitu cepat! @rwjblue Saya beri label sebagai "Bug" mungkin masalah ini dapat diselesaikan dengan rilis 2.10.1 mendatang.

Bukan itu perbaikannya, @pixelhandler! Di situlah bug itu diperkenalkan. 😜Ini memang membutuhkan rilis poin setelah diperbaiki, tetapi saya memiliki beberapa hal lain yang harus diatasi sebelum saya dapat kembali melakukan hal-hal router. (Saya punya sekitar 5 masalah terbuka untuk ditangani.)

Apakah ada status orang ini?

Kami mengalami masalah ini dengan memutakhirkan aplikasi Kesibukan ke 2.10, dan kami harus melakukan refaktorisasi rute root error untuk diberi nama berbeda atau menunda peningkatan ke 2.10.

Kami juga tertarik dengan status bug ini. Kami menunda peningkatan ke 2.10 untuk saat ini.

Saya berharap saya dapat mengatasi masalah ini dengan tidak secara eksplisit mendaftarkan rute error dan membiarkan templat kesalahan, rute, dll. Pada tempatnya. Saya mencobanya dan menemukan:

  • Pada pengait rute yang gagal, router akan menggelembung ke rute kesalahan dan template kustom saya ditampilkan.
  • Pada transisi yang disengaja ke error, router tidak beralih ke template saya. Menariknya, itu tidak mencatat pesan kesalahan yang sama yang Anda dapatkan ketika rute tidak ada.

Saya berpikir mungkin saya bisa meninggalkan template, route, controller, dll di tempatnya dan mendaftarkan rute error kustom yang menunjuk ke template yang sama untuk kasus error yang saya tangani secara eksplisit. Mungkin ini akan menangani kesalahan yang tertangkap dan tidak tertangkap dengan template khusus saya.

@nathanhammond - Apakah Anda memiliki pemikiran di atas? Layak untuk peretasan atau lebih baik menunggu perbaikan resmi?

Sudahlah :(

Proposal di atas masih memerlukan pemetaan error dan akan memicu bug ini.

Saya bisa saja pergi dengan membuat rute kustom untuk kesalahan yang saya tangani dan menggunakan komponen kesalahan yang sama di template error .

Tampaknya menjadi satu-satunya pendekatan lain yang menunggu perbaikan.

CC: @nathanhammond

Saya perhatikan bahwa ini diperbaiki di ember v2.12.0-beta.1, apakah ada peluang untuk mendapatkan perbaikan ini di-backport ke rilis 2.11? Sejak 2.12 beta memperkenalkan sejumlah besar masalah baru.

Sejak 2.12 beta memperkenalkan sejumlah besar masalah baru.

Silakan laporkan masalah apa pun yang Anda temukan dengan siklus beta!

Apakah ada peluang untuk mendapatkan perbaikan ini di-backport ke rilis 2.11?

Ya, menurut saya itu ide yang bagus.

Sepertinya ini telah dikomentari di v0.2.9 + dengan 27c0f57 dan 9b21d93 untuk seri 0.3.x.

@rwjblue apakah ini akan ditambal kembali ke 2.11 atau 2.10 juga? Saya tidak yakin dengan proses untuk memutuskan bug mana yang ditambal di versi mana.

Diperbaiki di 2.11.1

Apakah ini diperbaiki dengan cara yang berbeda dari beta.1? Baru saja mencoba 2.11.1 dan itu masih memberi saya kesalahan rute duplikat tentang "hotel.error" sedangkan versi beta tidak.

@ Glennvd - Ya, mereka adalah versi berbeda dari pengenal rute (0.2.9 untuk 2.11 dan 0.3 untuk 2.12). Mungkin saja saya mengacaukan ini entah bagaimana. Dapatkah Anda membagikan kesalahan dan pelacakan tumpukan yang Anda dapatkan dengan 2.11? Juga, mungkin repo twiddle dan / atau demo? Saya senang untuk merilis 2.11.2 setelah kami mengetahui kesalahan yang saya lakukan ..

@rwjblue saya punya https://ember-twiddle.com/e4b8412bf5629483f94276a001598571

Stacktrace lengkap (dari aplikasi saya sendiri) di bawah.
add (ember.debug.js:55618) (anonymous) (ember.debug.js:57247) (anonymous) (ember.debug.js:55191) eachRoute (ember.debug.js:55179) eachRoute (ember.debug.js:55177) eachRoute (ember.debug.js:55177) map (ember.debug.js:55190) map (ember.debug.js:57244) _initRouterJs (ember.debug.js:27511) setupRouter (ember.debug.js:27606) startRouting (ember.debug.js:27592) startRouting (ember.debug.js:2887) didBecomeReady (ember.debug.js:3867) invoke (ember.debug.js:337) flush (ember.debug.js:405) flush (ember.debug.js:529) end (ember.debug.js:599) run (ember.debug.js:722) join (ember.debug.js:744) run.join (ember.debug.js:22286) (anonymous) (ember.debug.js:22349) mightThrow (jquery.js:3570) process (jquery.js:3638) nrWrapper ((index):97)
Kesalahan masih sama Uncaught Error: You may not add a duplicate route named hotel.error .

@rwjblue running

grep --recursive "RouteRecognizer.VERSION" node_modules/ember-source

kembali

node_modules/ember-source/dist/ember.debug.js:RouteRecognizer.VERSION = '0.2.8';
node_modules/ember-source/dist/ember.js:RouteRecognizer.VERSION = '0.2.8';
node_modules/ember-source/dist/ember.prod.js:RouteRecognizer.VERSION = '0.2.8';

Ya, masalahnya adalah [email protected] dirilis dengan keluaran dist 0.2.8. Saya sedang mengerjakannya ...

@rwjblue , Terima kasih pak.
Beritahu saya jika Anda butuh sesuatu!

Oke, saya merilis [email protected] dengan keluaran dist yang diperbarui, lalu menemukan cabang rilis (di https://github.com/emberjs/ember.js/commit/6c7e6950f127aa31912b5729971703c0c9615655), dan dikonfirmasi di keluaran build (di https://github.com/components/ember/commit/4a9c7361f4f546daf3ad342da6d196b5b4b6bf20).

Saya kemudian dikonfirmasi dengan yang bermalas bersama oleh @Glennvd di atas bahwa ketika menggunakan release cabang tidak ada pernyataan yang terjadi (dan sepatu aplikasi).

Jika orang lain dapat memeriksa kewarasan saya di sini, saya dapat merilis 2.11.2 ...

Di atasnya.

@rwjblue maafkan
Saya mencoba membangun proyek saya dengan

devDependencies: {
// ...
"ember-source": "git://github.com/emberjs/ember.js.git#6c7e6950f127aa31912b5729971703c0c9615655"
// ...

tapi gagal

$ ember build
⠋ Building
Cannot find module 'node_modules/ember-source/dist/ember-template-compiler.js'

Apa yang saya lakukan salah :)?

@gmaliar ember-source tidak memiliki artefak build di repositori, jadi Anda perlu menggunakan tag bower, atau mengkloning, membangun, dan menautkan ember secara lokal.

Terima kasih @locks ,
@rwjblue Saya dapat mengonfirmasi bahwa ini berfungsi.

Ini dapat ditutup, berfungsi dengan baik pada 2.11.2 .

Terimakasih sudah mengkonfirmasi!

Apakah halaman ini membantu?
0 / 5 - 0 peringkat