Ember.js está configurando la ruta de 'error' de forma predeterminada, pero el reconocedor de rutas ya no permite rutas duplicadas:
https://github.com/tildeio/route-recognizer/blame/5d54688f04273d3a921470b903a36266dddcdaf2/dist/route-recognizer.js#L525 -L531
Hacerlo te dará una página en blanco con un error en tu consola:
Uncaught Error: You may not add a duplicate route named `error`
Las rutas predeterminadas de 'error' se establecen aquí:
https://github.com/emberjs/ember.js/blob/10857fd98008bb47bd63bfe3d21b0fc224a197a5/packages/ember-routing/lib/system/dsl.js#L49 -L50
Puede probarlo tratando de manejar error
ruta usando ember g route error
.
Esta funcionalidad funcionó bien en 2.9.
@ diamondo25 ¿Puedes reproducir en un Twiddle por favor?
También estoy viendo esto y no recuerdo haberlo visto en la versión beta más reciente de ayer.
Parece legitimo. Esto es en virtud de un cambio route-recognizer
que hice. Necesita bloquear la creación predeterminada si el usuario ya ha creado una. (Sé cómo arreglarlo, lo conseguiré).
Reticulación: https://github.com/tildeio/route-recognizer/pull/118
@nathanhammond, ¡ gracias por arreglar tan rápido! @rwjblue Lo etiqueté como "Error", tal vez este problema se pueda resolver con una próxima versión 2.10.1.
¡Esa no es la solución, @pixelhandler! Ahí es donde se introdujo el error. 😜Esto necesita una liberación puntual una vez arreglado, pero tengo algunas otras cosas que abordar antes de poder volver a hacer las cosas del enrutador. (Tengo alrededor de 5 problemas abiertos que abordar).
¿Hay algún estatus en este tipo?
Solucionamos este problema al actualizar la aplicación Bustle a 2.10, y necesitaremos refactorizar nuestra ruta raíz error
para que se llame de manera diferente o postergar la actualización a 2.10.
También estamos interesados en el estado de este error. Por el momento, estamos evitando actualizar a 2.10.
Tenía la esperanza de poder solucionar esto al no registrar explícitamente la ruta error
y dejar mi plantilla de error, ruta, etc. en su lugar. Lo probé y encontré:
Estoy pensando que tal vez podría dejar la plantilla, la ruta, el controlador, etc. en su lugar y registrar una ruta de error personalizada que apunte a la misma plantilla para mis casos de error manejados explícitamente. Tal vez esto manejaría tanto los errores detectados como los no detectados con mi plantilla personalizada.
@nathanhammond - ¿Tiene alguna idea sobre lo anterior? ¿Vale la pena el hacker o es mejor esperar una solución oficial?
No importa :(
La propuesta anterior aún requeriría la asignación error
y desencadenaría este error.
Puedo simplemente hacer la ruta personalizada para mis errores manejados y usar mi mismo componente de error en la plantilla error
.
Parece ser el único otro enfoque pendiente de solución.
CC: @nathanhammond
Me di cuenta de que esto se solucionó en ember v2.12.0-beta.1, ¿hay alguna posibilidad de que esta solución se vuelva a exportar a una versión 2.11? Dado que la versión beta 2.12 presenta una gran cantidad de problemas nuevos.
Dado que la versión beta 2.12 presenta una gran cantidad de problemas nuevos.
¡Informe cualquier problema que encuentre con el ciclo beta!
¿Existe alguna posibilidad de que esta corrección se vuelva a exportar a una versión 2.11?
Sí, creo que es una buena idea.
Corregido en 2.11.1
¿Se solucionó esto de una manera diferente a la versión beta.1? Acabo de probar 2.11.1 y todavía me da un error de ruta duplicado sobre "hotel.error" mientras que la versión beta no.
@Glennvd - Sí, son versiones diferentes de route-Recognizer (0.2.9 para 2.11 y 0.3 para 2.12). Es posible que arruiné esto de alguna manera. ¿Puede compartir el error y el seguimiento de la pila que obtiene con 2.11? Además, ¿es posible un repositorio de twiddle y / o demo? Estoy feliz de lanzar un 2.11.2 una vez que averigüemos qué hice mal ...
@rwjblue Tengo un twiddle aquí, solo necesita ser cambiado a la versión de ascua correcta https://ember-twiddle.com/e4b8412bf5629483f94276a001598571
Stacktrace completo (de mi propia aplicación) a continuación.
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)
El error sigue siendo el mismo Uncaught Error: You may not add a duplicate route named
hotel.error .
@rwjblue corriendo
grep --recursive "RouteRecognizer.VERSION" node_modules/ember-source
devoluciones
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';
Sí, el problema es que [email protected] se lanzó con la salida dist de 0.2.8. Estoy trabajando en ello...
@rwjblue , muy apreciado señor.
¡Hazme saber si necesitas algo!
De acuerdo, lancé [email protected] con la salida dist actualizada, luego salté en la rama de lanzamiento (en https://github.com/emberjs/ember.js/commit/6c7e6950f127aa31912b5729971703c0c9615655), y lo confirmé en la salida de compilación (en https://github.com/components/ember/commit/4a9c7361f4f546daf3ad342da6d196b5b4b6bf20).
Luego confirmé con el twiddle compartido por @Glennvd anterior que al usar release
branch no ocurre ninguna afirmación (y la aplicación se inicia).
Si alguien más puede comprobar mi cordura aquí, puedo lanzar 2.11.2 ...
En eso.
@rwjblue perdona mi noobies,
Estoy tratando de construir mi proyecto con
devDependencies: {
// ...
"ember-source": "git://github.com/emberjs/ember.js.git#6c7e6950f127aa31912b5729971703c0c9615655"
// ...
pero falla en
$ ember build
⠋ Building
Cannot find module 'node_modules/ember-source/dist/ember-template-compiler.js'
Qué estoy haciendo mal :)?
@gmaliar ember-source
no tiene los artefactos de compilación en el repositorio, por lo que debe usar la etiqueta bower o clonar, compilar y vincular ember localmente.
Gracias @locks ,
@rwjblue Puedo confirmar que está funcionando.
Esto se puede cerrar, funciona correctamente en 2.11.2
.
¡Gracias por confirmar!
Comentario más útil
Corregido en 2.11.1