Est-il faux de supposer que ngInclude
peut prendre un chemin brut? Je continue d'essayer de définir mon ngInclude
comme suit:
<div ng-include src="views/header.html"></div>
Cela ne fonctionne pas, mais si je fais quelque chose comme ça, ça marche.
// HeaderController
app.controller('HeaderCtrl', function($scope){
$scope.templates = {[
template: { url: 'views/header.html' }
]};
$scope.template = $scope.templates[0].template;
});
Dans mon index.html
<div ng-controller="HeaderCtrl">
<div ng-include src="template.url"></div>
</div>
Est-ce que ngInclude
ne contient que des valeurs hors de la portée? Si c'est le cas, pourquoi est-ce ainsi et non une inclusion directe du code HTML partiel.
ng-include
accepte une expression. Si vous voulez spécifier l'URL explicite directement ici, vous devez donner une chaîne.
<div ng-include src="'page.html'"></div>
ng-include
, comme d’autres directives ( ng-class
, ng-src
...) évalue une expression Angular de la portée. Sans guillemets (''
), il recherchera une variable de la portée.
Notez qu'il n'est pas nécessaire de spécifier l'attribut src
.
<div ng-include src="'views/header.html'"></div>
Peut être réécrit pour: (c'est plus simple)
<div ng-include="'views/header.html'"></div>
Vous pouvez également utiliser ng-include en tant qu'élément :
<ng-include src="'views/header.html'"></ng-include>