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.
@ 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.)
Tautan silang: https://github.com/tildeio/route-recognizer/pull/118
@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:
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.
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!
Komentar yang paling membantu
Diperbaiki di 2.11.1