J'ai ceci dans mon fichier de mise en page principal
<body>
<header id="header" ng-controller="HeaderController"></header>
<div class="container" ng-view></div>
J'ai un modèle partiel header.html dans ma structure de répertoires.
Comment inclure ce modèle dans mon application? Je pensais que angular inclut automatiquement le modèle après le traitement du contrôleur, mais cela ne fonctionne pas.
Le noeud d'en-tête doit être remplacé par le contenu de ce fichier.
Une façon d'inclure des fragments templates/html à partir de fichiers externes consiste à utiliser le fichier ng-include
directive ( doc ).
<ng-include src="'/path/to/the/header.html'"></ng-include>
ou
<div ng-include src="'/path/to/the/header.html'"></div>
De Angular 2
, ngInclude
a été supprimé et les directives personnalisées sont préférées. C'est la façon dont je viens avec
Définissez le composant principal de votre application, lequel lien vers la page maître
@View({
templateUrl: 'client/app/layout/main.html',
directives: [ROUTER_DIRECTIVES, Navigation, Footer]
})
@Component({selector: 'app'})
@RouteConfig(
routerConfig
)
class MainComponent {
}
Et c'est le modèle principal
<!---- Navigation bar ---->
<navigation></navigation>
<!----/ Navigation bar ---->
<!---- Main Part ---->
<router-outlet>
</router-outlet>
<!----/ Main Part ---->
<!---- Footer ---->
<footer></footer>
<!----/ Footer ---->
base.html
, qui contiendra la balise body et la balise app<body> <app>Loading ...</app> </body>
Navigation
et Footer
, comme le composant principal, qui pointe vers vos modèles partiels.