angular/modules/@angular/router
Miško Hevery 8a5eb08672 fix(fakeAsync): have fakeAsync use Proxy zone. (#10797)
Closes #10503

It is possible for code in `beforeEach` to capture and fork a zone
(for example creating `NgZone` in `beforeEach`). Subsequently the code
in `it` may chose to do `fakeAsync`. The issue is that because the
code in `it` can use `NgZone` from the `beforeEach`. it effectively can
escape the `fakeAsync` zone. A solution is to run all of the test in
`ProxyZone` which allows a test to dynamically replace the rules at any
time. This allows the `beforeEach` to fork a zone, and then `it` to
retroactively became `fakeAsync` zone.
2016-08-19 12:10:53 -07:00
..
scripts chore(router): changes the router setup to align with other modules 2016-06-21 12:17:30 -07:00
src refactor(router): update stability labels (#10902) 2016-08-17 15:35:30 -07:00
test refactor(router): update router spec not to use TestComponentBuilder 2016-08-17 08:06:32 -07:00
testing refactor(router): update stability labels (#10902) 2016-08-17 15:35:30 -07:00
.gitignore chore(router): update config before publishing to npm 2016-06-21 12:17:30 -07:00
CHANGELOG.md chore(router): update changelog 2016-08-09 11:02:04 -07:00
index.ts refactor(router): remove deprecated apis (#10658) 2016-08-16 13:40:28 -07:00
karma-test-shim.js refactor(testing): introduce new testing api to support ng modules 2016-07-29 04:47:18 -07:00
karma.conf.js fix(fakeAsync): have fakeAsync use Proxy zone. (#10797) 2016-08-19 12:10:53 -07:00
LICENSE chore: set up test and build infrastructure 2016-06-21 12:17:30 -07:00
ng_probe_token.ts feat(core): make ngprobe tokens pluggable 2016-08-11 22:56:10 -07:00
package.json chore(router): bump up version number 2016-08-09 11:01:17 -07:00
README.md refactor(core): change module semantics 2016-07-26 07:04:10 -07:00
rollup.config.js fix(router): fix rollup config to properly set up rxjs 2016-07-15 16:27:54 -07:00
testing.ts refactor(router): rename RouterTestModule into RouterTestingModule 2016-07-20 11:39:31 -07:00
tsconfig-es5.json fix(router): routerLinkActive should only set classes after the router has successfully navigated 2016-07-20 17:51:21 -07:00
tsconfig-es2015.json fix(router): routerLinkActive should only set classes after the router has successfully navigated 2016-07-20 17:51:21 -07:00
tsconfig.json refactor(router): remove deprecated apis (#10658) 2016-08-16 13:40:28 -07:00

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 isnt 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