I've this in my main layout file
<body>
<header id="header" ng-controller="HeaderController"></header>
<div class="container" ng-view></div>
I've a header.html partial template in my directory structure.
How to include this template in my app? I thought angular automatically includes the template after processing the controller, but it doesnt work.
The header node should be replaced with the content of this file.
Suvi Vignarajah
One way of including templates/html fragments from external files is to use the ng-include
directive (doc).
<ng-include src="'/path/to/the/header.html'"></ng-include>
or
<div ng-include src="'/path/to/the/header.html'"></div>
From Angular 2
, ngInclude
has been removed and custom directives are preferred. This is the way I come up with
Define the main component for your app, which link to the master page
@View({ templateUrl: 'client/app/layout/main.html', directives: [ROUTER_DIRECTIVES, Navigation, Footer] }) @Component({selector: 'app'}) @RouteConfig( routerConfig ) class MainComponent { }
And this is the main template
<!---- Navigation bar ---->
<navigation></navigation>
<!----/ Navigation bar ---->
<!---- Main Part ---->
<router-outlet>
</router-outlet>
<!----/ Main Part ---->
<!---- Footer ---->
<footer></footer>
<!----/ Footer ---->
- Define a
base.html
, which will contain the body tag and the app tag
<body> <app>Loading ...</app> </body>
- Now, final step is defining the components for
Navigation
andFooter
like the MainComponent, which point to your partial templates
来源:https://stackoverflow.com/questions/22329769/angularjs-include-partial-template