atualizar Angular 5
ngOutletContext
foi renomeado para ngTemplateOutletContext
Consulte também https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29
original
Os modelos ( <template>
ou <ng-template>
desde a versão 4.x) são adicionados como visualizações incorporadas e passam por um contexto.
Com let-col
o contexto, a propriedade $implicit
é disponibilizada como col
dentro do modelo para ligações. Com let-foo="bar"
o contexto, a propriedade bar
é disponibilizada como foo
.
Por exemplo, se você adicionar um modelo
<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>
Veja também esta resposta e ViewContainerRef # createEmbeddedView .
*ngFor
também funciona dessa maneira. A sintaxe canônica torna isso mais óbvio
<ng-template ngFor let-item [ngForOf]="items" let-i="index" let-odd="odd">
<div>{{item}}</div>
</ng-template>
em que NgFor
adiciona o modelo como visão incorporada ao DOM para cada um item
de items
e acrescenta alguns valores ( item
, index
, odd
) para o contexto.
Consulte também Usando $ implict para passar vários parâmetros