Skip to content
timkindberg edited this page Jan 28, 2013 · 50 revisions

Vote on specifications so we can reach a conclusion

  • Add a + on a feature or design point you concur
  • Add a - on a feature or design point you do not like
  • Create a new bullet for new feature/design points
    • Nest bullets if they are related or subfeatures/points
    • Keep bullets concise
  • Vote count will decide priority
    • You can vote on any bullet once
  • Avoid 'discussing' bullets here. If you disagree, down-vote and discuss in #1

Router Specifications

  1. API should be backwards-compatible with current router (+0 / -0)
  2. Defining routes
  3. Should be a recursively nested object (+5 / -1)
  4. Can append more children later in separate method call: andWhen('/parent/route', '/child') (+0 / -3)
  5. Can define an 'otherwise' clause for nested routes (identical to otherwise()) (+1 / -0)
  6. Routes can specify subroutes AND multiple views. Views are the "leafs" in the tree. (+1 / 0)
  7. Parameters
  8. Should support an optional syntax: /user/:id[/:searchTerm] (+3 / -3)
  9. Should support typecasting syntax: /user/int:id (+3 / -2)
  10. Route / View Names
  11. Should be optional
    1. Single view (+4 / -0)
    2. If nested view, unnamed route uses unnamed view at the same nesting level (+2 / -1)
  12. Names circumvent nesting level (+2 / -1)
  13. Loading Controllers
  14. All descendant controllers are reloaded (+3 / -1)
  15. $routeUpdated event is $broadcast instead of reloading controller
    1. Always use event (+0 / -2)
    2. Provide optional to opt-in, otherwise reload controller (+3 / -0)
    3. Provide option to opt-in recursively (instead of this controller only) (+0 / -1)
  16. If child route no longer matches
    1. controller is unloaded (+1 / -1)
    2. option to disable unloading (+3 / -0)
    3. related view is emptied (+2 / -1)
    4. option to disable unloading (+2 / -1)
  17. Descendant controllers should have access to scope content of ancestors (+4 / -1)
  18. Routes can specify a single controller for each view (named views). (+1 / 0)
    1. Additionally a model can be passed to set the content of the controller (+1 / 0)
  19. Utilities
  20. Publicly providers a route checking (+1 / -0) 1. Simplistic REGEX function: uiRouter.is('/some/*') (+1 / -0) 2. Developers can place onto scope: $rootScope.isRoute = uiRouter.is (+0 / -0) 3. Directive to toggle an active class (+0 / -0)
Clone this wiki locally