Ember.js: Erreurs avec `transitionTo` depuis la mise à niveau vers 3.0.0

Créé le 26 mars 2018  ·  3Commentaires  ·  Source: emberjs/ember.js

J'ai mis à jour quelques projets vers la version 3.0.0 maintenant et même si l'un d'eux va bien, l'autre génère des erreurs chaque fois que j'appelle transitionTo , comme

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)

Il semble que le problème soit dans 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);
}

En le regardant avec le débogueur, il semble y avoir passé deux fois pour une raison quelconque, et lors de la première passe, objects est [] (comme il se doit car il n'y a pas de segments dynamiques ici) mais sur le second c'est [undefined] qui échoue à la validation de la longueur.

Étant donné que je n'ai pas ce problème dans mon autre application, je ne sais pas si j'ai rencontré un cas limite avec Ember ou un problème avec mon propre code ici et je me demande si vous pourriez m'indiquer une direction où Je pourrais approfondir cela.

Needs Reproduction

Commentaire le plus utile

Un peu de recherche et j'ai découvert que cela ne se produit que dans les services où j'ai utilisé le service de routage privé : routing: service('-routing') .

Le remplacer par router: service() résout mon problème, mais y a-t-il un endroit où cela est documenté ? J'avais l'impression que le service de routeur public était encore à venir.

Tous les 3 commentaires

Hmm, il semble que cela soit probablement lié à votre configuration (je n'ai pas vu cela rapporté par d'autres), pourriez-vous essayer de l'isoler dans une application de démonstration plus petite pour nous faciliter la recherche ?

Un peu de recherche et j'ai découvert que cela ne se produit que dans les services où j'ai utilisé le service de routage privé : routing: service('-routing') .

Le remplacer par router: service() résout mon problème, mais y a-t-il un endroit où cela est documenté ? J'avais l'impression que le service de routeur public était encore à venir.

@artcommacode oui, cela a été annoncé dans le post sur la version 2.15

Fermant ça alors.

Merci!

Cette page vous a été utile?
0 / 5 - 0 notes