Je suis tombé sur une étrange syntaxe d'affectation dans un modèle Angular 2.
<template let-col let-car="rowData" pTemplate="body">
<span [style.color]="car[col.field]">{{car[col.field]}}</span>
</template>
Il apparaît que let-col
et let-car="rowData"
créer deux nouvelles variables col
et car
qui peuvent ensuite être liées à l'intérieur du modèle.
Source: https://www.primefaces.org/primeng/#/datatable/templating
Comment s'appelle cette let-*
syntaxe magique ?
Comment ça marche?
Quelle est la différence entre let-something
et let-something="something else"
?
angular
angular2-template
primeng
Steven Liekens
la source
la source
Réponses:
mettre à jour Angular 5
ngOutletContext
a été renommé enngTemplateOutletContext
Voir aussi https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29
original
Les modèles (
<template>
ou<ng-template>
depuis 4.x) sont ajoutés en tant que vues intégrées et reçoivent un contexte.Avec
let-col
la propriété context$implicit
est rendue disponible commecol
dans le modèle pour les liaisons. Aveclet-foo="bar"
le contexte, la propriétébar
est disponible sous la formefoo
.Par exemple si vous ajoutez un modèle
Voir également cette réponse et ViewContainerRef # createEmbeddedView .
*ngFor
fonctionne également de cette façon. La syntaxe canonique rend cela plus évidentoù
NgFor
ajoute le modèle comme vue intégrée au DOM pour chacunitem
deitems
et ajoute quelques valeurs (item
,index
,odd
) au contexte.Voir aussi Utilisation de $ implict pour passer plusieurs paramètres
la source
ngOutletContext
. C'était le chaînon manquant entre ce que je savais déjà et les informations que je ne trouvais pas dans la documentation.ngTemplateOutletContext
comme vous l'avez suggéré dans la version d'angular 5. La documentation ne mentionne pas non plus qu'il soit obsolète. angular.io/api/common/NgTemplateOutlet*
syntaxe.La microsyntaxe angulaire vous permet de configurer une directive dans une chaîne compacte et conviviale. L'analyseur de microsyntaxe traduit cette chaîne en attributs sur le
<ng-template>
. Le mot clé let déclare une variable d'entrée de modèle que vous référencez dans le modèle.la source