Acho que eu entendi o que você quer. Uma solução é na rota você adicionar uma propriedade que guardará o título da página. Depois, quando o sistema de rotas do angular for executado, ele verifica o valor dessa propriedade e joga no escopo pai de todos os controller, o $rootScope. Como a info está no $rootScope, você poderá acessar através de AE em qualquer lugar. Veja um exemplo, pegando o main.js final da aplicação (quando termina o curso):
angular.module('alurapic', ['minhasDiretivas','ngAnimate', 'ngRoute', 'ngResource', 'meusServicos'])
.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
$routeProvider.when('/fotos', {
titulo: 'Listagem de Fotos',
templateUrl: 'partials/principal.html',
controller: 'FotosController'
});
$routeProvider.when('/fotos/new', {
titulo: 'Novo foto',
templateUrl: 'partials/foto.html',
controller: 'FotoController'
});
$routeProvider.when('/fotos/edit/:fotoId', {
titulo: 'Alterando foto',
templateUrl: 'partials/foto.html',
controller: 'FotoController'
});
$routeProvider.otherwise({redirectTo: '/fotos'});
}).run(['$rootScope', function($rootScope) {
$rootScope.$on('$routeChangeSuccess', function (event, current, previous) {
alert(current.$$route.title);
$rootScope.titulo = current.$$route.titulo;
});
}]);
A novidade é o .run
.
Agora, no index.html
basta acessar esse valor em qualquer lugar, inclusive fora da diretiva ng-view:
<body>
<h1>{{titulo}}</h1>
<div class="container">
<ng-view></ng-view>
</div> <!-- fim container -->
</body>
Pronto, agora cada parcial que você visitar esse valor estará disponível. Você pode usar essa info onde quiser.
Testei aqui e funcionou perfeito.
Só não concordo com você que o principal uso de rotas é header e footer, longe disso.