Ember.js: Errores con `transitionTo` desde la actualización a 3.0.0

Creado en 26 mar. 2018  ·  3Comentarios  ·  Fuente: emberjs/ember.js

He actualizado un par de proyectos a 3.0.0 ahora y aunque uno de ellos está bien, el otro arroja errores cada vez que llamo a transitionTo , como

router.js:1011 Uncaught Error: More context objects were passed than there are dynamic segments for the route: projects
    at NamedTransitionIntent.applyToHandlers (router.js:1011)
    at NamedTransitionIntent.applyToState (router.js:940)
    at Router.getTransitionByIntent (router.js:1229)
    at Router.transitionByIntent (router.js:1348)
    at doTransition (router.js:1947)
    at Router.transitionTo (router.js:1418)
    at Class._doTransition (router.js:561)
    at Class.transitionTo (routing.js:18)
    at session.save.then.s (session.js:104)
    at tryCatcher (rsvp.js:215)

Parece que el problema está en applyToHandlers :

var objects = this.contexts.slice(0);
// ...
if (objects.length > 0) {
  throw new Error('More context objects were passed than there are dynamic segments for the route: ' + targetRouteName);
}

Al mirarlo con el depurador, parece pasar por esto dos veces por alguna razón, y en el primer paso objects es [] (como debería ser, ya que no hay segmentos dinámicos aquí) pero en el segundo es [undefined] que falla la validación de longitud.

Dado que no tengo este problema en mi otra aplicación, no estoy seguro de si encontré un caso límite con Ember o un problema con mi propio código aquí y me pregunto si podría indicarme una dirección donde Podría investigar esto más a fondo.

Needs Reproduction

Comentario más útil

Investigué un poco y descubrí que esto solo sucede en los servicios en los que he usado el servicio de enrutamiento privado: routing: service('-routing') .

Reemplazarlo con router: service() soluciona mi problema, pero ¿hay algún lugar donde esto esté documentado? Tenía la impresión de que el servicio de enrutador público aún estaba por llegar.

Todos 3 comentarios

Hmm, parece que probablemente esté relacionado con su configuración (no he visto esto informado por otros), ¿podría intentar aislarlo en una aplicación de demostración más pequeña para que nos sea más fácil rastrearlo?

Investigué un poco y descubrí que esto solo sucede en los servicios en los que he usado el servicio de enrutamiento privado: routing: service('-routing') .

Reemplazarlo con router: service() soluciona mi problema, pero ¿hay algún lugar donde esto esté documentado? Tenía la impresión de que el servicio de enrutador público aún estaba por llegar.

@artcommacode sí, se anunció en la publicación sobre el lanzamiento de 2.15

Cerrando esto entonces.

¡Gracias!

¿Fue útil esta página
0 / 5 - 0 calificaciones