Ember.js: Fehler mit „transitionTo“ seit dem Upgrade auf 3.0.0

Erstellt am 26. März 2018  ·  3Kommentare  ·  Quelle: emberjs/ember.js

Ich habe jetzt ein paar Projekte auf 3.0.0 aktualisiert und während eines davon in Ordnung ist, gibt das andere Fehler aus, wenn ich transitionTo , wie z

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)

Es scheint, dass das Problem in applyToHandlers liegt:

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);
}

Wenn man es mit dem Debugger betrachtet, scheint es aus irgendeinem Grund zweimal durchzugehen, und beim ersten Durchgang ist objects [] (wie es sein sollte, da es hier keine dynamischen Segmente gibt), aber eingeschaltet das zweite ist [undefined] , was die Längenvalidierung nicht bestanden hat.

Da ich dieses Problem in meiner anderen App nicht bekomme, bin ich mir nicht sicher, ob ich mit Ember oder einem Problem mit meinem eigenen Code hier auf einen Grenzfall gestoßen bin, und ich frage mich, ob Sie mich in eine Richtung weisen könnten Darauf könnte ich noch weiter eingehen.

Needs Reproduction

Hilfreichster Kommentar

Ein bisschen herumgraben und ich habe festgestellt, dass dies nur bei Diensten passiert, bei denen ich den privaten Routing-Dienst verwendet habe: routing: service('-routing') .

Das Ersetzen durch router: service() behebt mein Problem, aber ist dies irgendwo dokumentiert? Ich hatte den Eindruck, dass der öffentliche Router-Dienst noch kommen würde.

Alle 3 Kommentare

Hmm, es scheint, als ob es wahrscheinlich mit Ihrem Setup zusammenhängt (habe dies nicht von anderen gemeldet gesehen), könnten Sie versuchen, es in einer kleineren Demo-App zu isolieren, um es uns leichter zu machen, es aufzuspüren?

Ein bisschen herumgraben und ich habe festgestellt, dass dies nur bei Diensten passiert, bei denen ich den privaten Routing-Dienst verwendet habe: routing: service('-routing') .

Das Ersetzen durch router: service() behebt mein Problem, aber ist dies irgendwo dokumentiert? Ich hatte den Eindruck, dass der öffentliche Router-Dienst noch kommen würde.

@artcommacode ja, es wurde im Beitrag über die Veröffentlichung von 2.15 angekündigt

Schließe das dann ab.

Danke schön!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen