Dokumentacja ( https://angular.io/guide/template-syntax#!#star-template ) podaje następujący przykład. Powiedzmy, że mamy taki kod szablonu:
<hero-detail *ngIf="currentHero" [hero]="currentHero"></hero-detail>
Zanim zostanie wyrenderowany, zostanie „pozbawiony cukru”. Oznacza to, że notacja asterix zostanie przepisana na notację:
<template [ngIf]="currentHero">
<hero-detail [hero]="currentHero"></hero-detail>
</template>
Jeśli „currentHero” jest prawdziwe, zostanie to renderowane jako
<hero-detail> [...] </hero-detail>
Ale co, jeśli chcesz otrzymać warunkowe wyjście w ten sposób:
<h1>Title</h1><br>
<p>text</p>
.. i nie chcesz, aby wynik był opakowany w kontener.
Możesz napisać wersję pozbawioną cukru bezpośrednio w następujący sposób:
<template [ngIf]="showContent">
<h1>Title</h1>
<p>text</p><br>
</template>
I to będzie działać dobrze. Jednak teraz ngIf musi mieć nawiasy [] zamiast gwiazdki *, a to jest mylące ( https://github.com/angular/angular.io/issues/2303 )
Z tego powodu powstała inna notacja, jak na przykład:
<ng-container *ngIf="showContent"><br>
<h1>Title</h1><br>
<p>text</p><br>
</ng-container>
Obie wersje dadzą te same wyniki (renderowane będą tylko znaczniki h1 i p). Drugi jest preferowany, ponieważ możesz używać * ngIf jak zawsze.
<template>
gdy jest używany bez dyrektyw. w tym przypadku<template>
będzie produkować<!--template bindings={}-->
.