dotJEM / angular-routing

Enhanced state based routing for Angular applications!
https://dotjem.github.io/angular-routing/
MIT License
75 stars 9 forks source link

Refactor $pipeline, $state and $stateTransition #106

Open jeme opened 10 years ago

jeme commented 10 years ago

To complete the work done in #102 for v0.7.0 we need a few refactorings.

Reason for splitting the task up is that the introduction of the $pipeline service in #102 is not a breaking change, and so it can live in the v0.6.x track, but to streamline things a bit more some services will undergo some refactorings that will introduce breaking changes.

Merging and renaming of $stateTransition and $transition into the same object/service, while $transition would be the cleanest name for both, we need to consider a clash with: https://github.com/angular-ui/bootstrap/blob/master/src/transition/transition.js

So we need to consider another option for a name or stick with $stateTransition.

We do this as a refactoring of $state and $stateTransition as is should make way for letting the $stateTransition handle all what the intermediate $transition service did.

This should allow for a much more flexible solution, which can be customized to a high degree, this also makes both the $state service and $transition service more focused on what they do.

Also we wan't to allow access to configure all providers through just the $stateProvider to simplify things a great deal, e.g.

$stateProvider.routes -> $routeProvider
$stateProvider.transitions -> $stateTransitionProvider
$stateProvider.pipeline -> $pipelineProvider

the $stateProvider already have access all of these directly or indirectly as it needs them for configuration or at runtime so this shouldn't be a problem.