Создание нового компонента является наиболее распространенным способом, но иногда вам нужно только повторить локальную разметку, и ng-template
позволяет это.
Что интересно, и даже можно передать контекст, чтобы можно было использовать привязку данных:
<ng-template #tplPerson let-person>
<span class="person-id">{{person.id}}</span>
<span class="person-alias" *ngIf="!!person.alias">"{{person.alias}}"</span>
<span class="person-name">{{person.name}}</span>
</ng-template>
let-person
без значения определяет переменную контекста person
со значением, установленным на $implicit
при создании экземпляра шаблона:
<ng-template *ngTemplateOutlet="tplPerson; context: {$implicit: thePerson}"></ng-template>
Дополнительные параметры см. В документации NgTemplateOutlet .