angular-ui/ui-router — pull request #480 by zdennis (2013-10-04 03:51:49+00:00)
Title: Support relative state transitions when defined with parent property

Currently, you can not reference states relatively that were defined with a `parent` attribute rather than specifying the intended hierarchy in the name itself (e.g. `hierharchy.in.state.name.here`).

This does not work because states are registered based on the name given to them through `state(...)` and cannot be looked up through any other means. This pull request changes that by defining additional states based on the `parent` attribute and registering a state for each step along the way up the ancestry chain, meaning: this adds the ability to transition to relative states that are defined with a `parent` attribute.

This allows the alternate syntax: to be used

# New alternate method. Let's you break up your state definitions into manageable chunks
# in complex apps.
.state('foo')
.state('bar', { parent: 'foo' })

# in addition to the traditional method, using name to determine state hierarchy
.state('foo')
.state('foo.bar')

This makes it possible to use the relative syntax to transition to states, e.g.:

# when inside of foo state
Go to bar

This works with the relative path syntax (`^`) as well.