One of the things I love to do is watch movies at home with my soon-to-be-wife (with emphasis on soon as I’m getting married tomorrow!). We have seen a lot of them over the years so it’s not always easy to find a new movie or to remember a good movie that’s worth watching again.
A state is not dependent upon a URL. You can assign a URL to a state but it can also be transitioned from one to another without a URL change.
The app has plenty of comments that describe each router and its relation to the other states.
state can have its own template and controller. This simplifies the application structure, for a cleaner and maintainable code environment. No more thick controllers and fat templates - now you can separate your code into smaller reusable fragments.
Here are some key concepts for nested states:
- Child state can inherit (resolved data or custom data) from their ancestors states.
- Child may extend the ancestor state URL or override with its own URL.
- An abstract parent state can be created as a base-ground for all of its child states.
Abstract state can never be transitioned to, it is activated implicitly when one of its descendants are activated. This can be useful in several situations:
- Preparing a URL for all of the child states.
- Creating a place holder template that the child state can populate.
- Inheriting $scope objects down to the child state.
- Providing resolved dependencies via resolve for use by child states.
- Providing inherited custom data via data for use by child states or an event listener.
Multiple Named Views
You can create a complex state that is divided in to regions (named views). Each region can have its own template and controller. Child states may optionally inject their region relative to their ancestor state and thus override it.
Next, I plan to add a Drupal backend using Hedley - currently bookmarking is just locally to
localStorage. After that I’m not sure what I’ll do. I think first I’ll enjoy my honeymoon, watching movies with the wife…