Я обнаружил странный синтаксис присваивания внутри шаблона Angular 2.

<шаблон let-col let-car = "rowData" pTemplate = "body">
     {{car [col.field]}} 

Похоже, что let-col и let-car = "rowData" создают две новые переменные col и car, которые могут затем быть привязанным к шаблону.

Источник: https://www.primefaces.org/primeng/#/ datatable / templating

Что это за волшебный let - * синтаксис?

Как это работает?

В чем разница между let-something и let-something = "something else"?

Ответы (2)

обновить Angular 5

ngOutletContext был переименован в ngTemplateOutletContext

См. Также CHANGELOG.md @ angular / angular

оригинал

Шаблоны (<шаблон>или начиная с 4.x) добавляются как встроенные представления и передаются контексту.

С let-col свойство контекста $ implicit становится доступным как col в шаблоне для привязок. С let-foo = "bar" свойство контекста bar становится доступным как foo.

Например, если вы добавляете шаблон


  
{{col}}
{{foo}}

См. Также этот ответ и ViewContainerRef # createEmbeddedView.

* ngFor тоже работает таким же образом. Канонический синтаксис делает это более очевидным


  
{{item}}

, где NgFor добавляет шаблон как встроенное представление в DOM для каждого item из items и добавляет несколько значений (item, индекс, нечетное) в контексте.

См. Также Использование $ implt для передачи нескольких параметров

Микросинтаксис Angular позволяет вам сконфигурировать директиву в виде компактной удобной строки. Синтаксический анализатор микросинтаксиса переводит эту строку в атрибуты на . Ключевое слово let объявляет входную переменную шаблона, на которую вы ссылаетесь в шаблоне.

2022 WebDevInsider