оновлення 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 для передачі декількох параметрів