Ember.js: Erros com `transitionTo` desde a atualização para 3.0.0

Criado em 26 mar. 2018  ·  3Comentários  ·  Fonte: emberjs/ember.js

Eu atualizei alguns projetos para 3.0.0 agora e enquanto um deles está bom, o outro lança erros sempre que eu chamo 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 o problema está em 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);
}

Olhando para ele com o depurador, parece passar por isso duas vezes por algum motivo, e na primeira passagem objects é [] (como deveria ser, pois não há segmentos dinâmicos aqui), mas em o segundo é [undefined] que falha na validação de comprimento.

Visto que não recebo esse problema em meu outro aplicativo, não tenho certeza se atingi um caso extremo com o Ember ou um problema com meu próprio código aqui e gostaria de saber se você poderia me indicar uma direção em que Eu poderia pesquisar mais sobre isso.

Needs Reproduction

Comentários muito úteis

Um pouco de pesquisa e descobri que isso só acontece em serviços em que usei o serviço de roteamento privado: routing: service('-routing') .

Substituí-lo por router: service() corrige meu problema, mas existe algum lugar onde isso esteja documentado? Eu tinha a impressão de que o serviço de roteador público ainda estava por vir.

Todos 3 comentários

Hmm, parece que provavelmente está relacionado à sua configuração (não vi isso relatado por outros), você poderia tentar isolar em um aplicativo de demonstração menor para facilitar o rastreamento?

Um pouco de pesquisa e descobri que isso só acontece em serviços em que usei o serviço de roteamento privado: routing: service('-routing') .

Substituí-lo por router: service() corrige meu problema, mas existe algum lugar onde isso esteja documentado? Eu tinha a impressão de que o serviço de roteador público ainda estava por vir.

@artcommacode sim, foi anunciado no post sobre o lançamento 2.15

Fechando isso então.

Obrigada!

Esta página foi útil?
0 / 5 - 0 avaliações