actualizar Angular 5
ngOutletContext
fue renombrado a ngTemplateOutletContext
Ver también https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29
original
Las plantillas ( <template>
o <ng-template>
desde 4.x) se agregan como vistas incrustadas y se les pasa un contexto.
Con let-col
la propiedad de contexto $implicit
está disponible como col
dentro de la plantilla para enlaces. Con let-foo="bar"
el contexto, la propiedad bar
está disponible como foo
.
Por ejemplo, si agrega una plantilla
<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>
Vea también esta respuesta y ViewContainerRef # createEmbeddedView .
*ngFor
También funciona de esta manera. La sintaxis canónica lo hace más obvio.
<ng-template ngFor let-item [ngForOf]="items" let-i="index" let-odd="odd">
<div>{{item}}</div>
</ng-template>
donde NgFor
agrega la plantilla como vista incrustada al DOM para cada uno item
de los items
y agrega unos pocos valores ( item
, index
, odd
) para el contexto.
Consulte también Uso de $ implict para pasar múltiples parámetros