In Angular, the ng-template
directive is used to declare a template that can be used to stamp out elements in the component’s template. It is similar to a JavaScript function, but it is not executed until the template is stamped out.
Here is an example of how you can use the ng-template
directive in an Angular component:
<ng-template #template>
<p>This is the template content</p>
</ng-template>
<button (click)="showTemplate()">Show Template</button>
<div *ngIf="show">
<ng-container *ngTemplateOutlet="template"></ng-container>
</div>
In this example, the ng-template
directive is used to define a template with a p
element that displays the text “This is the template content”. The button
element has a click event binding that calls the showTemplate()
method when clicked.
The div
element has an *ngIf
directive that displays the div
element only if the show
property is true
. Inside the div
element, there is an ng-container
element with an *ngTemplateOutlet
directive that stamps out the template defined by the ng-template
directive.
To use the ng-template
directive in your component, you need to do the following:
- Declare a template variable using the
#
symbol, like this:#template
. - Define the template content inside the
ng-template
element. - Use the
*ngTemplateOutlet
directive to stamp out the template in the component’s template. - Pass the template variable to the
*ngTemplateOutlet
directive as an input.
By following these steps, you can use the ng-template
directive in your Angular component to stamp out elements in the component’s template.
You can also pass input data to the ng-template
directive using the ngTemplateOutletContext
input. Here is an example of how you can do this:
<ng-template #template let-name="name">
<p>Hello, {{name}}!</p>
</ng-template>
<ng-container *ngTemplateOutlet="template; context: {name: 'John'}"></ng-container>
In this example, the ng-template
directive has a template variable name
that is passed to the template using the let
keyword. The ng-container
element has an *ngTemplateOutlet
directive that stamps out the template and passes the input data using the context
input.
By using the ngTemplateOutletContext
input, you can pass data to the ng-template
directive and use it to display dynamic content in the component’s template.