Me deparei com uma sintaxe de atribuição estranha dentro de um modelo 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
e let-car="rowData"
crie duas novas variáveis col
e car
que poderão ser vinculadas ao interior do modelo.
Fonte: https://www.primefaces.org/primeng/#/datatable/templating
Como é let-*
chamada essa sintaxe mágica ?
Como funciona?
Qual é a diferença entre let-something
e let-something="something else"
?
angular
angular2-template
primeng
Steven Liekens
fonte
fonte
Respostas:
atualizar Angular 5
ngOutletContext
foi renomeado parangTemplateOutletContext
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 comocol
dentro do modelo para ligações. Comlet-foo="bar"
o contexto, a propriedadebar
é disponibilizada comofoo
.Por exemplo, se você adicionar um modelo
Veja também esta resposta e ViewContainerRef # createEmbeddedView .
*ngFor
também funciona dessa maneira. A sintaxe canônica torna isso mais óbvioem que
NgFor
adiciona o modelo como visão incorporada ao DOM para cada umitem
deitems
e acrescenta alguns valores (item
,index
,odd
) para o contexto.Consulte também Usando $ implict para passar vários parâmetros
fonte
ngOutletContext
. Esse era o elo que faltava entre o que eu já sabia e as informações que não consegui encontrar na documentação.ngTemplateOutletContext
como você sugeriu no lançamento do angular 5. Os documentos também não mencionam nada sobre isso ser preterido. angular.io/api/common/NgTemplateOutlet*
sintaxe está fazendo.A microssintaxe Angular permite configurar uma diretiva em uma sequência compacta e amigável. O analisador microsyntax converte essa cadeia de caracteres em atributos no
<ng-template>
. A palavra-chave let declara uma variável de entrada do modelo que você faz referência no modelo.fonte