оновлення Angular 5
ngOutletContext було перейменовано на ngTemplateOutletContext
Дивіться також https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29
оригінальний
Шаблони ( <template>або <ng-template>з 4.x) додаються як вбудовані представлення та передаються контексту.
З let-colконтекстом властивість $implicitстає доступною як colу шаблоні для прив'язки. З let-foo="bar"контекстом властивість barстає доступною як foo.
Наприклад, якщо ви додасте шаблон
<ng-template #myTemplate let-col let-foo="bar">
<div>{{col}}</div>
<div>{{foo}}</div>
</ng-template>
<!-- render above template with a custom context -->
<ng-template [ngTemplateOutlet]="myTemplate"
[ngTemplateOutletContext]="{
$implicit: 'some col value',
bar: 'some bar value'
}"
></ng-template>
Дивіться також цю відповідь і ViewContainerRef # createEmbeddedView .
*ngForтакож працює таким чином. Канонічний синтаксис робить це більш очевидним
<ng-template ngFor let-item [ngForOf]="items" let-i="index" let-odd="odd">
<div>{{item}}</div>
</ng-template>
де NgForдодається шаблон як вбудований вид на DOM для кожного itemз itemsі додає кілька значень ( item, index, odd) до контексту.
Див. Також Використання $ implict для передачі декількох параметрів