Encontré una sintaxis de asignación extraña dentro de una plantilla de Angular 2.
<template let-col let-car="rowData" pTemplate="body"> <span [style.color]="car[col.field]">{{car[col.field]}}</span> </template> Parece que let-col y let-car="rowData" crean dos nuevas variables col y car que luego se pueden vincular dentro de la plantilla.
Fuente: https://www.primefaces.org/primeng/#/datatable/templating
¿Cómo se llama esta mágica sintaxis let-* ?
¿Como funciona?
¿Cuál es la diferencia entre let-something y let-something="something else" ?
actualizar angular 5
ngOutletContext pasó a llamarse ngTemplateOutletContext
Ver también CHANGELOG.md @ angular/angular
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" la bar de propiedades de contexto 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>Consulte también esta respuesta y ViewContainerRef#createEmbeddedView .
*ngFor también funciona de esta manera. La sintaxis canónica hace esto 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 una vista incrustada al DOM para cada item de items y agrega algunos valores ( item , index , odd ) al contexto.
Ver también Uso de $implicit para pasar múltiples parámetros
La microsintaxis de Angular le permite configurar una directiva en una cadena compacta y amigable. El analizador de microsintaxis traduce esa cadena en atributos en <ng-template> . La palabra clave let declara una variable de entrada de plantilla a la que hace referencia dentro de la plantilla.