feat($route): implement `resolveRedirectTo`
`resolveRedirectTo` can be set to a function that will (eventually) return the new URL to redirect to. The function supports dependency injection and should return the new URL either as a string or as a promise that will be resolved to a string. If the `resolveRedirectTo` function returns `undefined` or returns a promise that gets resolved to `undefined`, no redirection will take place and the current route will be processed normally. If the `resolveRedirectTo` function throws an error or the returned promise gets rejected, no further processing will take place (e.g. no template fetched, no `resolve` functions run, no controller instantiated) and a `$routeChangeError` will be broadcasted. `redirectTo` takes precedence over `resolveRedirectTo`, so specifying both on the same route definition, will cause the latter to be ignored. Fixes #5150 Closes #14695 BREAKING CHANGE: Previously, if `redirectTo` was a function that threw an Error, execution was aborted without firing a `$routeChangeError` event. Now, if a `redirectTo` function throws an Error, a `$routeChangeError` event will be fired.
G
Georgios Kalpakas committed
e9865654b39c71be71034c38581a8c7bd16bc716
Parent: a84e3e7