angular-cn/modules/@angular/router
Tobias Bosch 8d746e3f67 feat(testing): add implicit test module
Every test now has an implicit module. It can be configured via `configureModule` (from @angular/core/testing)
to add providers, directives, pipes, ...

The compiler now has to be configured separately via `configureCompiler` (from @angular/core/testing)
to add providers or define whether to use jit.

BREAKING CHANGE:
- Application providers can no longer inject compiler internals (i.e. everything
  from `@angular/compiler). Inject `Compiler` instead. This reflects the
  changes to `bootstrap` for module support (3f55aa609f).
- Compiler providers can no longer be added via `addProviders` / `withProviders`.
  Use the new method `configureCompiler` instead.
- Platform directives / pipes need to be provided via
  `configureModule` and can no longer be provided via the
  `PLATFORM_PIPES` / `PLATFORM_DIRECTIVES` tokens.
- `setBaseTestProviders()` was renamed into `initTestEnvironment` and 
  now takes a `PlatformRef` and a factory for a
  `Compiler`.
- E.g. for the browser platform:
  
  BEFORE:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
      TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS} from ‘@angular/platform-browser-dynamic/testing’;
  
  setBaseTestProviders(TEST_BROWSER_DYNAMIC_PLATFORM_PROVIDERS,
      TEST_BROWSER_DYNAMIC_APPLICATION_PROVIDERS);   
  ```

  AFTER:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {browserTestCompiler, browserDynamicTestPlatform,
      BrowserDynamicTestModule} from ‘@angular/platform-browser-dynamic/testing’;
  
  initTestEnvironment(
      browserTestCompiler,
      browserDynamicTestPlatform(),
      BrowserDynamicTestModule);

  ```
- E.g. for the server platform:
  
  BEFORE:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {TEST_SERVER_PLATFORM_PROVIDERS,
      TEST_SERVER_APPLICATION_PROVIDERS} from ‘@angular/platform-server/testing/server’;
  
  setBaseTestProviders(TEST_SERVER_PLATFORM_PROVIDERS,
      TEST_SERVER_APPLICATION_PROVIDERS);   
  ```

  AFTER:
  ```
  import {setBaseTestProviders} from ‘@angular/core/testing’;
  import {serverTestCompiler, serverTestPlatform,
      ServerTestModule} from ‘@angular/platform-browser-dynamic/testing’;
  
  initTestEnvironment(
      serverTestCompiler,
      serverTestPlatform(),
      ServerTestModule);

  ```

Related to #9726
Closes #9846
2016-07-06 18:04:19 -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): clean up naming 2016-07-06 16:19:52 -07:00
test refactor(router): clean up naming 2016-07-06 16:19:52 -07:00
.gitignore chore(router): update config before publishing to npm 2016-06-21 12:17:30 -07:00
CHANGELOG.md chore(router): bump up version number 2016-06-30 14:58:59 -07:00
LICENSE chore: set up test and build infrastructure 2016-06-21 12:17:30 -07:00
README.md chore(README): fix a typo 2016-06-21 12:17:30 -07:00
index.ts refactor(router): clean up naming 2016-07-06 16:19:52 -07:00
karma-test-shim.js feat(testing): add implicit test module 2016-07-06 18:04:19 -07:00
karma.conf.js chore(router): test karma config to rerun tests on change 2016-06-21 23:19:26 -07:00
package.json chore(router): bump up version number 2016-06-30 14:58:59 -07:00
rollup.config.js chore(router): changes the router setup to align with other modules 2016-06-21 12:17:30 -07:00
tsconfig-es5.json chore(router): changes the router setup to align with other modules 2016-06-21 12:17:30 -07:00
tsconfig-es2015.json fix(router): fix tsconfig to use es2015 modules 2016-06-21 23:19:26 -07:00
tsconfig.json fix(router): top-levels do not work in ngIf 2016-06-27 13:34:54 -07:00

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