설명서 ( https://angular.io/guide/template-syntax#!#star-template )는 다음 예제를 제공합니다. 다음과 같은 템플릿 코드가 있다고 가정 해보십시오.
<hero-detail *ngIf="currentHero" [hero]="currentHero"></hero-detail>
렌더링되기 전에 "설탕 제거"됩니다. 즉, 별표 표기법이 표기법으로 표기됩니다.
<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 태그 만 렌더링 됨). 두 번째는 항상 선호하는 * ngIf를 사용할 수 있기 때문에 선호됩니다.
<template>
지시어없이 사용할 때 와 다른 것으로 생각합니다 . 이 경우에<template>
단지 생성 할 것<!--template bindings={}-->
입니다.