Ответ 1
То, что вы описываете, представляет собой вложенные представления, которые маршрутизатор по умолчанию не поддерживает. Там очень популярный сторонний модуль для AngularJs, называемый UI-Router, который поддерживает то, что вы просите (и многое другое, с действительно хорошим документация).
Демо-версия UI-Router, которая делает то, что вы описываете, можно увидеть здесь:
http://plnkr.co/edit/3KgB5g?p=preview
Маршруты в UI-Router называются состояниями, и каждое состояние может иметь состояние родительского состояния и дочерних состояний, что позволяет вам планировать макеты. В приведенном выше примере вы можете увидеть это в действии в app.js:
Мы определяем состояние, называемое персоналом:
.state('personnel', {
url: "/personnel",
templateUrl: "personnel.html"
})
Затем мы определяем дочерние состояния у персонала (список персонала, который вы можете просмотреть):
.state('personnel.list', {
url: '/list',
templateUrl: 'personnel.list.html',
controller: 'PersonnelCtrl'
})
И от этого мы можем определить еще большее количество детей (когда вы нажимаете на имя, деталь лица):
.state('personnel.list.person', {
url: '/:id',
templateUrl: 'personnel.list.person.html',
controller: function($scope, $stateParams){
$scope.id = $stateParams.id
}
});
Обратите внимание, что вы можете перемещаться по разным людям, и только та часть изменения изменяется, пока родительские состояния остаются неизменными.