/router

A new router for Angular 1.4 and Angular 2

Primary LanguageJavaScriptOtherNOASSERTION

The New Angular Router

Build Status

A work-in-progress new router for Angular 1.3 and 2.0, written with AtScript.

State of this project

Currently, the router is usable in Angular 1, but still missing many of the planned features. APIs will rapidly change, so I do not recommend using this in an important production app quite yet.

See the Progress Document for standup-style updates

Trying the router

You can install the router via npm:

npm install angular-new-router

The documentation is pretty sparse. See the examples/ directory in this repo for now.

Helping out

For now, the best way for you to help with the new router is to try it out and file GitHub issues with questions or feedback. Please also check out existing discussions.

Goals

This router aims to fulfill the requirements mentioned in the Angular 2.0 router design document.

Below is a short summary of these goals:

  • Have sensible conventions and defaults
  • Be customizable at almost every point
  • Support sibling "viewports" (like ng-views in Angular 1.x's ngRoute)
  • Support nested routers
    • Allow components to encapsulate entire parts of an application
  • Expose a "navigation model" which can be used to generate a navigation UI (like menus)
    • Expose which route in the model is active (useful in styling/highlighting links in the menu)
  • Generate hrefs based on router hierarchies
  • Lazy-load components
  • Be able to reuse component instances
  • Use either push state or hash change mode
  • Handle updating the document title

Prior Art

License

Apache 2