89f64e58c3
The recognizer code used to call Object.freeze() on queryParams before using them to construct ActivatedRoutes, with the intent being to help avoid common invalid usage. Unfortunately, Object.freeze() works in-place, so this was also freezing the queryParams on the actual UrlTree object, making it more difficult to manipulate UrlTrees in things like UrlHandlingStrategy. This change simply shallow-copies the queryParams before freezing them. Fixes #22617 PR Close #22663 |
||
---|---|---|
.. | ||
scripts | ||
src | ||
test | ||
testing | ||
upgrade | ||
.gitignore | ||
BUILD.bazel | ||
LICENSE | ||
README.md | ||
index.ts | ||
karma-test-shim.js | ||
karma.conf.js | ||
package.json | ||
public_api.ts | ||
rollup.config.js | ||
tsconfig-build.json |
README.md
Angular Router
Managing state transitions is one of the hardest parts of building applications. This is especially true on the web, where you also need to ensure that the state is reflected in the URL. In addition, we often want to split applications into multiple bundles and load them on demand. Doing this transparently isn’t trivial.
The Angular router is designed to solve these problems. Using the router, you can declaratively specify application state, manage state transitions while taking care of the URL, and load components on demand.
Overview
Read the overview of the Router here.
Guide
Read the dev guide here.
Local development
# keep @angular/router fresh
$ ./scripts/karma.sh
# keep @angular/core fresh
$ ../../../node_modules/.bin/tsc -p modules --emitDecoratorMetadata -w
# start karma
$ ./scripts/karma.sh