AngularJS ng-include no incluye la vista a menos que se pase en $ scope

¿Está mal asumir quengInclude puede tomar un camino en bruto? Sigo tratando de configurar mingInclude como sigue:

<div ng-include src="views/header.html"></div>

Esto no funciona pero si hago algo como esto funciona.

// HeaderController
app.controller('HeaderCtrl', function($scope){
   $scope.templates = {[
     template: { url: 'views/header.html' }
   ]};

   $scope.template = $scope.templates[0].template;
});

En mi index.html

<div ng-controller="HeaderCtrl">
  <div ng-include src="template.url"></div>
</div>

HacengInclude ¿Solo excepto valores fuera del alcance? Si es así, ¿por qué es así y no una inclusión directa del html parcial?

Respuestas a la pregunta(2)

Su respuesta a la pregunta