Ember.js по умолчанию устанавливает маршрут с ошибкой, но распознаватель маршрутов больше не допускает дублирования маршрутов:
https://github.com/tildeio/route-recognizer/blame/5d54688f04273d3a921470b903a36266dddcdaf2/dist/route-recognizer.js#L525 -L531
Это даст вам пустую страницу с ошибкой в вашей консоли:
Uncaught Error: You may not add a duplicate route named `error`
Здесь устанавливаются маршруты ошибок по умолчанию:
https://github.com/emberjs/ember.js/blob/10857fd98008bb47bd63bfe3d21b0fc224a197a5/packages/ember-routing/lib/system/dsl.js#L49 -L50
Вы можете проверить это, попытавшись обработать маршрут error
с помощью ember g route error
.
Эта функция отлично работала в 2.9.
@ diamondo25 Можете ли вы воспроизвести в Twiddle, пожалуйста?
Я тоже это вижу и не припомню, чтобы видел это в последней бета-версии за вчерашний день.
Выглядит вполне законно. Это в силу сделанного мной изменения route-recognizer
. Необходимо заблокировать создание по умолчанию, если пользователь уже создал его. (Я знаю, как исправить, доберусь до этого.)
Перекрестные ссылки: https://github.com/tildeio/route-recognizer/pull/118
@nathanhammond, спасибо, что @rwjblue Я помечен как "Ошибка", возможно, эта проблема может быть решена в следующем выпуске 2.10.1.
Это не решение, @pixelhandler! Вот где и появилась ошибка. 😜 Это действительно требует выпуска точки после исправления, но мне нужно решить еще несколько вещей, прежде чем я смогу вернуться к работе с маршрутизатором. (Мне нужно решить около 5 открытых вопросов.)
Есть ли у этого парня статус?
Мы столкнулись с этой проблемой при обновлении приложения Bustle до 2.10, и нам нужно либо реорганизовать наш корневой маршрут error
чтобы он был назван по-другому, либо отложить обновление до 2.10.
Нас также интересует статус этой ошибки. Мы пока воздерживаемся от обновления до 2.10.
Я надеялся, что смогу обойти это, не зарегистрировав явно маршрут error
и оставив свой шаблон ошибки, маршрут и т. Д. На месте. Я попробовал и нашел:
Я думаю, может быть, я мог бы оставить шаблон, маршрут, контроллер и т. Д. На месте и зарегистрировать настраиваемый маршрут ошибки, указывающий на тот же шаблон для моих явно обработанных случаев ошибок. Возможно, это позволит обработать как обнаруженные, так и неперехваченные ошибки с помощью моего настраиваемого шаблона.
@nathanhammond -
Ничего :(
Вышеупомянутое предложение все равно потребует сопоставления error
и вызовет эту ошибку.
Я могу просто создать собственный маршрут для моих обработанных ошибок и использовать тот же компонент ошибки в шаблоне error
.
Кажется, это единственный другой подход, ожидающий исправления.
CC: @nathanhammond
Я заметил, что это исправлено в ember v2.12.0-beta.1, есть ли шанс перенести это исправление на выпуск 2.11? Начиная с бета-версии 2.12 появляется множество новых проблем.
Начиная с бета-версии 2.12 появляется множество новых проблем.
Пожалуйста, сообщайте о любых проблемах, которые вы обнаружите с бета-циклом!
Есть ли шанс перенести это исправление в выпуск 2.11?
Да, я думаю, это хорошая идея.
Исправлено в 2.11.1
Было ли это исправлено иначе, чем в beta.1? Только что попробовал 2.11.1, и это по-прежнему дает мне повторяющуюся ошибку маршрута о "hotel.error", в то время как бета-версия этого не делает.
@Glennvd - Да, это разные версии распознавателя маршрутов (0.2.9 для 2.11 и 0.3 для 2.12). Возможно, я как-то напортачил. Можете ли вы поделиться ошибкой и трассировкой стека, полученными с 2.11? Кроме того, возможен твидл и / или демонстрационное репо? Я счастлив выпустить 2.11.2, как только мы выясним, что я сделал не так ...
@rwjblue У меня тут кое-что https://ember-twiddle.com/e4b8412bf5629483f94276a001598571
Полная трассировка стека (из моего собственного приложения) ниже.
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)
Ошибка все та же Uncaught Error: You may not add a duplicate route named
hotel.error .
@rwjblue работает
grep --recursive "RouteRecognizer.VERSION" node_modules/ember-source
возвращается
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';
Да, проблема в том, что [email protected] был выпущен с выходом dist 0.2.8. Я работаю над этим...
@rwjblue , очень признателен, сэр.
Дайте мне знать, если вам нужно что-нибудь!
Хорошо, я выпустил [email protected] с обновленным выводом dist, затем наткнулся на ветку выпуска (в https://github.com/emberjs/ember.js/commit/6c7e6950f127aa31912b5729971703c0c9615655) и подтвердил вывод сборки (в https://github.com/components/ember/commit/4a9c7361f4f546daf3ad342da6d196b5b4b6bf20).
Затем я подтвердил в поворачивающих разделяемой @Glennvd выше , что при использовании release
расшириться не утверждение не происходит (и приложение загружается).
Если кто-то еще может проверить меня здесь, я могу выпустить 2.11.2 ...
В теме.
@rwjblue прости мою глупость,
Я пытаюсь построить свой проект с
devDependencies: {
// ...
"ember-source": "git://github.com/emberjs/ember.js.git#6c7e6950f127aa31912b5729971703c0c9615655"
// ...
но это не удается
$ ember build
⠋ Building
Cannot find module 'node_modules/ember-source/dist/ember-template-compiler.js'
Что я делаю неправильно :)?
@gmaliar ember-source
не имеет артефактов сборки в репозитории, поэтому вам нужно использовать тег bower или клонировать, создавать и связывать ember локально.
Спасибо @locks ,
@rwjblue Я могу подтвердить, что он работает.
Его можно закрыть, он корректно работает на 2.11.2
.
Спасибо за подтверждение!
Самый полезный комментарий
Исправлено в 2.11.1