AngularJs включает частичный шаблон
У меня это в моем основном файле макета
<body>
<header id="header" ng-controller="HeaderController"></header>
<div class="container" ng-view></div>
У меня есть частичный шаблон header.html в моей структуре каталогов.
Как включить этот шаблон в мое приложение? Я думал, что angular автоматически включает шаблон после обработки контроллера, но он не работает.
Заголовок node должен быть заменен содержимым этого файла.
Ответы
Ответ 1
Одним из способов включения фрагментов templates/html из внешних файлов является использование директивы ng-include
(doc).
<ng-include src="'/path/to/the/header.html'"></ng-include>
или
<div ng-include src="'/path/to/the/header.html'"></div>
Ответ 2
От Angular 2
, ngInclude
было удалено, а предпочтительные пользовательские директивы. Так я придумал
-
Определите основной компонент для вашего приложения, которое ссылается на главную страницу
@View({
templateUrl: 'client/app/layout/main.html',
directives: [ROUTER_DIRECTIVES, Navigation, Footer]
})
@Component({selector: 'app'})
@RouteConfig(
routerConfig
)
class MainComponent {
}
И это основной шаблон
<!---- Navigation bar ---->
<navigation></navigation>
<!----/ Navigation bar ---->
<!---- Main Part ---->
<router-outlet>
</router-outlet>
<!----/ Main Part ---->
<!---- Footer ---->
<footer></footer>
<!----/ Footer ---->
- Определите
base.html
, который будет содержать тег body и тег приложения
<body> <app>Loading ...</app> </body>
- Теперь последний шаг - это определение компонентов для
Navigation
и Footer
, таких как MainComponent, которые указывают на ваши частичные шаблоны