Ember.js: Router `transition.retry` mit dynamischen Segmenten und `refreshModel` queryParams verursacht einen unerwarteten Fehler

Erstellt am 19. Sept. 2018  ·  3Kommentare  ·  Quelle: emberjs/ember.js

Scheint mit #10945 verwandt zu sein.

Mein Anwendungsfall ist: Wenn ein Benutzer versucht, mit einem abgelaufenen Token zu navigieren (indem er das Fenster lange genug geöffnet lässt), schlagen die API-Aufrufe mit einem nicht autorisierten Fehler fehl. Wir haben der Fehleraktion der Anwendungen eine Logik hinzugefügt, um diese Art von Fehlern abzufangen, den Benutzer erneut zu authentifizieren und den Übergang nach der Authentifizierung erneut zu versuchen. Das Problem ist, dass, wenn ich versuche, transition.retry() zu einer Route mit dynamischen Segmenten und Abfrageparametern mit refreshModel , es mit dem folgenden Fehler fehlschlägt:

You didn't provide enough string/numeric parameters to satisfy all of the dynamic segments for route [route name]

Wenn ich meinen Abfrageparameter auf refreshModel: false setze, funktioniert es einwandfrei.

Hier ist ein reproduzierbarer Twiddle: https://ember-twiddle.com/e25fc434b6e1c1627e553b8120203655?openFiles=routes.dynamic-segment.js%2C
Sie können den Fehler sehen, wenn Sie auf den Link "Dynamisches Segment mit Abfrageparameter" klicken. Wenn Sie refreshModel in false auf /routes/dynamic-segment.js ändern, funktioniert es.

Jede Hilfe wird geschätzt. Vielen Dank!

Has Reproduction Router Bugs

Hilfreichster Kommentar

@krukid - Das von Ihnen erwähnte Problem scheint in keinem Zusammenhang mit dem hier diskutierten Original zu stehen (glaube ich). Würde es Ihnen etwas ausmachen, dafür eine neue Ausgabe einzureichen?

@rreckonerr hat kürzlich einen etwas verwandten Fehler behoben (wobei wir bei Zwischenübergängen nicht durch die ursprünglichen Werte

Alle 3 Kommentare

Ich erlebe etwas Ähnliches, als ich versuche, transition.retry() einen Übergang zu erstellen, der von einem Route.refresh() ausgelöst wurde, wobei queryParamsOnly: true

Ich denke, das hängt irgendwie mit #16921 zusammen

Ich finde, dass Route#refresh() einen Übergang erzeugt, der nicht wiederholt werden kann, wenn dynamische Segmente vorhanden sind.

Hier ist mein Anwendungsfall: https://ember-twiddle.com/6d2f981f6628a3260db8cafd3b3aac0a?openFiles=routes.flopping-route%5C.js%2C

@krukid - Das von Ihnen erwähnte Problem scheint in keinem Zusammenhang mit dem hier diskutierten Original zu stehen (glaube ich). Würde es Ihnen etwas ausmachen, dafür eine neue Ausgabe einzureichen?

@rreckonerr hat kürzlich einen etwas verwandten Fehler behoben (wobei wir bei Zwischenübergängen nicht durch die ursprünglichen Werte

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen