Создайте дочерний компонент, содержащий ваш HTML в своем шаблоне, и используйте его столько раз, сколько вам нужно в вашем (родительском) компоненте, например так:
Дочерний компонент:
import { Component, OnInit, Input } from '@angular/core';
@Component({
selector: 'app-child-comp',
template: `
<nav class="pages">
<ul class="inline">
<li
*ngFor="let p of pages; let i = index;"
[ngClass]="{'active': page.current_page == i+1}"
(click)="onPageChange(i+1, $event)"
>{{i+1}}</li>
</ul>
</nav>
`,
styleUrls: ['./child-comp.component.css']
})
export class ChildCompComponent implements OnInit {
@Input() pages;
constructor() { }
ngOnInit() {
}
onPageChange(index, event) {
}
}
ParentКомпонент:
<div id="header">
<app-child-comp [pages]="pages"></app-child-comp>
</div>
<div id="content">...</div>
<div id="footer">
<app-child-comp [pages]="pages"></app-child-comp>
</div>