Saya menemukan sintaks tugas yang aneh di dalam template Angular 2.
<template let-col let-car="rowData" pTemplate="body">
<span [style.color]="car[col.field]">{{car[col.field]}}</span>
</template>
Tampaknya let-col
dan let-car="rowData"
membuat dua variabel baru col
dan car
yang kemudian dapat diikat ke dalam template.
Sumber: https://www.primefaces.org/primeng/#/datatable/templating
let-*
Disebut apakah sintaksis magis ini ?
Bagaimana cara kerjanya?
Apa perbedaan antara let-something
dan let-something="something else"
?
angular
angular2-template
primeng
Steven Liekens
sumber
sumber
Jawaban:
perbarui Angular 5
ngOutletContext
diubah namanya menjadingTemplateOutletContext
Lihat juga https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29
asli
Templat (
<template>
, atau<ng-template>
sejak 4.x) ditambahkan sebagai tampilan tersemat dan diteruskan konteks.Dengan
let-col
konteks properti$implicit
dibuat tersediacol
dalam template untuk binding. Denganlet-foo="bar"
properti konteksbar
dibuat tersedia sebagaifoo
.Misalnya jika Anda menambahkan templat
Lihat juga jawaban ini dan ViewContainerRef # createEmbeddedView .
*ngFor
juga bekerja dengan cara ini. Sintaksis kanonik membuat ini lebih jelasdi mana
NgFor
menambahkan template sebagai tertanam pandangan ke DOM untuk setiapitem
dariitems
dan menambahkan beberapa nilai (item
,index
,odd
) dengan konteks.Lihat juga Menggunakan $ Implt untuk melewati beberapa parameter
sumber
ngOutletContext
. Itu adalah tautan yang hilang antara apa yang sudah saya ketahui dan informasi yang tidak dapat saya temukan di dokumentasi.ngTemplateOutletContext
seperti yang Anda sarankan dalam rilis sudut 5. Dokumen juga tidak menyebutkan apa-apa tentang itu menjadi usang. angular.io/api/common/NgTemplateOutlet*
sintaks.Microsyntax Angular memungkinkan Anda mengonfigurasi arahan dalam string yang ringkas dan ramah. Parser microsyntax menerjemahkan string itu ke dalam atribut pada
<ng-template>
. Biarkan kata kunci menyatakan variabel input templat yang Anda referensi di dalam templat.sumber