angular-ui / ui-router

The de-facto solution to flexible routing with nested views in AngularJS
http://ui-router.github.io/
MIT License
13.56k stars 3.01k forks source link

Returning a promise on a $transaction changes URL in browser but not on returning false. URL should not change until promise is rejected or resolved. #3829

Open hubnerd opened 3 years ago

hubnerd commented 3 years ago

This is a (check one box):

My version of UI-Router is: v1.0.26

Bug Report

Current Behavior:

Currently when pressing the navigation buttons on the browser, after setting a $transition.onStart to intercept, if you return a promise the URL in the browser will change before a resolve or reject is called on the promise but if you simply return false it does not change the URL.

Expected Behavior:

Expected behaviour would be no change to the URL until promise comes back with reject or resolve. As when rejecting I do not wish the URL to change.

Link to Plunker or stackblitz that reproduces the issue:

https://embed.plnkr.co/plunk/bCTfAXLTQwsk3NkP

If you open plunker in separate window to look at URL changes. You can see when you go to foo2 and click the back button in the browser no URL changes but if you go from home to foo and click the back button on the browser the URL changes but the promise in 2 seconds is rejected.

stale[bot] commented 2 years ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

This does not mean that the issue is invalid. Valid issues may be reopened.

Thank you for your contributions.