GeezerVisonThe World Wide Web, restored to 800 pixels of glory. | ||||||
| Home|About|Gaming cabinet|Archives|How it works|Starter sites | ||||||
GeezerVison is showing github.com — feat(router): Add ability to create `UrlTree` from any `ActivatedRouteSnapshot` by atscott · Pull Request #45877 · angular/angular Conversation
|
|
Shouldn't we deprecate the 'old way' right away, so that it can be eventually deleted sooner rather than later? |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
@alfaproject The "old way" will be replaced with this new function as a breaking change rather than deprecating it. That is, the |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
39baf5c to
62b9065
Compare
…eSnapshot` This exposes a new function from the router public API that allows developers to create a `UrlTree` from _any_ `ActivatedRouteSnapshot`. The current Router APIs only support creating a `UrlTree` from an `ActivatedRoute` which is both active _and_ materially appears in the `UrlTree` (it cannot be an empty path named outlet). This is because the implementation of the current way of creating a `UrlTree` attempts to look up the `UrlSegment` of the `ActivatedRoute` in the currently active `UrlTree` of the router. When this doesn't work, the `UrlTree` creation fails. Note that this API does not replace the current one. That would actually be a breaking change but should be done at some point in the future (v15). That is, `router.navigate` should call this new function. At that point, we can remove `_lastPathIndex`, `_urlSegment`, and `_correctedPathIndex` from the `ActivatedRoute`, along with all of the logic associated with determining what those should be. In addition, this would unblock a fix for angular#26081 because the `applyRedirects` and `recognize` operations could be combined into one. Overall, this would simplify logic in the router and reduce code size. It also exposes core routing capabilities as a helper function which were previously private API, which is a necessary step towards angular#42953. As a stress test for this new function, it _was_ swapped in as the default for `UrlTree` creation in angular#45859 and tested internally. The results indicate that this function behaves correctly. resolves angular#42191 (Tested directly) resolves angular#38276 (The test with a guard covers this case) resolves angular#22763 (Tested directly)
62b9065 to
37403d9
Compare
There was an error while loading. Please reload this page.
|
presubmit - Also triggered TGP for this since there is a small change to existing code. Edit: Green TGP |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
…tedRouteSnapshot`
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
…tedRouteSnapshot`
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Just for additional context: we discussed the commands argument question offline. The summary is that it's a well established term in Router APIs and this API has symmetry with other APIs. The changes looks great 👍
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
Reviewed-for: public-api
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
The reason will be displayed to describe this comment to others. Learn more.
reviewed-for: public-api
Sorry, something went wrong.
There was an error while loading. Please reload this page.
…tedRouteSnapshot`
|
caretaker note: Most of the changes are part of the new API and only minimally touches existing router code. For a router change, this is comparatively low risk but if you could merge and sync on its own or other low risk PRs, that would be a good idea. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
This PR was merged into the repository by commit 53ca936. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
|
This issue has been automatically locked due to inactivity. Read more about our automatic conversation locking policy. This action has been performed automatically by a bot. |
Sorry, something went wrong.
There was an error while loading. Please reload this page.
There was an error while loading. Please reload this page.
Successfully merging this pull request may close these issues.
Paths generated for child outlets relative to empty path named outlet parent are incorrect Router.navigate doesnt work with relative route unless that route is currently active bug: relative navigation doesn't work inside route guards
There was an error while loading. Please reload this page.