Я наткнулся на странный синтаксис присваивания внутри шаблона Angular 2.
<template let-col let-car="rowData" pTemplate="body">
<span [style.color]="car[col.field]">{{car[col.field]}}</span>
</template>
Похоже, что let-col
и let-car="rowData"
создать две новые переменные col
иcar
которые затем могут быть связаны внутри шаблона.
Источник: https://www.primefaces.org/primeng/#/datatable/templating
Что это за волшебство let-*
синтаксис?
Как это работает?
В чем разница между let-something
и let-something="something else"
?
angular
angular2-template
primeng
Стивен Лиекенс
источник
источник
Ответы:
обновление Angular 5
ngOutletContext
был переименован вngTemplateOutletContext
Смотрите также https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29
оригинал
Шаблоны (
<template>
или<ng-template>
начиная с версии 4.x) добавляются как встроенные представления и передаются в контексте.При
let-col
этом свойство context$implicit
доступно какcol
внутри шаблона для привязок. Сlet-foo="bar"
свойством контекстаbar
становится доступным , какfoo
.Например, если вы добавляете шаблон
Смотрите также этот ответ и ViewContainerRef # createEmbeddedView .
*ngFor
также работает таким образом. Канонический синтаксис делает это более очевиднымгде
NgFor
добавляется шаблон как встроенный вид на DOM для каждогоitem
изitems
и добавляет несколько значений (item
,index
,odd
) к контексту.Смотрите также Использование $ implict для передачи нескольких параметров.
источник
ngOutletContext
. Это было недостающее звено между тем, что я уже знал, и информацией, которую я не смог найти в документации.ngTemplateOutletContext
как вы предлагали в выпуске angular 5. В документах также ничего не говорится о том, что он устарел. angular.io/api/common/NgTemplateOutlet*
делает синтаксис.Микросинтаксис Angular позволяет вам сконфигурировать директиву в виде удобной компактной строки. Синтаксический анализатор microsyntax преобразует эту строку в атрибуты
<ng-template>
. Ключевое слово let объявляет входную переменную шаблона, на которую вы ссылаетесь в шаблоне.источник