เอกสารประกอบ ( https://angular.io/guide/template-syntax#!#star-template ) ให้ตัวอย่างต่อไปนี้ สมมติว่าเรามีรหัสเทมเพลตเช่นนี้:
<hero-detail *ngIf="currentHero" [hero]="currentHero"></hero-detail>
ก่อนที่มันจะถูกแสดงผลก็จะเป็น "de-sugared" นั่นคือเครื่องหมายดอกจัน asterix จะถูกคัดลอกไปยังสัญกรณ์:
<template [ngIf]="currentHero">
<hero-detail [hero]="currentHero"></hero-detail>
</template>
หาก 'currentHero' เป็นความจริงสิ่งนี้จะถูกแสดงผลเป็น
<hero-detail> [...] </hero-detail>
แต่ถ้าคุณต้องการเอาต์พุตแบบมีเงื่อนไขแบบนี้:
<h1>Title</h1><br>
<p>text</p>
.. และคุณไม่ต้องการห่อผลลัพธ์ในภาชนะ
คุณสามารถเขียนเวอร์ชันที่ไม่เหมาะสมได้โดยตรงเช่น:
<template [ngIf]="showContent">
<h1>Title</h1>
<p>text</p><br>
</template>
และสิ่งนี้จะทำงานได้ดี อย่างไรก็ตามตอนนี้เราต้องการ ngIf เพื่อให้มีเครื่องหมายวงเล็บ [] แทนเครื่องหมายดอกจัน * และนี่ทำให้เกิดความสับสน ( https://github.com/angular/angular.io/issues/2303 )
ด้วยเหตุนี้จึงมีการสร้างสัญกรณ์ที่แตกต่างกันเช่น:
<ng-container *ngIf="showContent"><br>
<h1>Title</h1><br>
<p>text</p><br>
</ng-container>
ทั้งสองเวอร์ชันจะให้ผลลัพธ์ที่เหมือนกัน (เฉพาะ h1 และแท็ก p เท่านั้นที่จะแสดงผล) รายการที่สองเป็นที่ต้องการเนื่องจากคุณสามารถใช้ * ng ถ้าชอบได้ตลอดเวลา
<template>
ตอนที่ใช้โดยไม่มีคำสั่ง<template>
จะผลิต<!--template bindings={}-->
ในกรณีนี้