So, what really happens is that since you do not enter the βparentβ into the allowed child routes, it will not wait for the parent before trying to solve the problem. If you try this:
resolve: { child: function(parent) { alert("Child Resolved!"); } }
then your child will be called after the parent is turned off (allowed).
I believe that a document means that it will wait for all that are allowed before making the actual transition to a state, such as loading the controller and rendering templates.
In the plunker below (which I basically borrowed from the old scotch.io example), I played with relocation relocation. If the permission of the child depends on the permission of the parent, then the parent's promise is permitted before the child. If the child is independent, then the child first resolves (even if the timeout length is set to 0).
In all cases, however, the parent and child controllers are not entered, and views are not displayed until both children and the parent are allowed.
http://plnkr.co/edit/EtU03AfgUAlWNsEH0TuU?p=preview
source share