Ember.js: Невозможно установить маршрут с ошибкой в ​​2.10

Созданный на 29 нояб. 2016  ·  29Комментарии  ·  Источник: emberjs/ember.js

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.

Bug Ember 2.10 Has Reproduction

Самый полезный комментарий

Исправлено в 2.11.1

Все 29 Комментарий

@ 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?

Да, я думаю, это хорошая идея.

Похоже, это было закомментировано в v0.2.9+ с 27c0f57 и 9b21d93 для серии

@rwjblue , это будет просто исправлено до 2.11 или 2.10? Я не уверен в том, как решить, какие ошибки исправлять в какой версии.

Исправлено в 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 .

Спасибо за подтверждение!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги