The angular2 documentation about Route Guards left me unclear about when it is appropriate to use a CanActivate guards vs. a CanActivateChild guard
From the docs:
As we learned about guarding routes with CanActivate, we can also protect child routes with the CanActivateChild guard. The CanActivateChild guard works similarly to the CanActivate guard, but the difference is its run before each child route is activated. We protected our admin feature module from unauthorized access, but we could also protect child routes within our feature module.
/admincanActivate is checked/admin route, but canActivate isn't called because it protects /admincanActivateChild is called whenever changing between children of the route its defined on.I hope this helps you, if still unclear, you can check specific functionality by adding guards debugging them.