Data-driven navigation for AngularJS