Angular2 возвращает данные обратно в `<template>` from `[ngTemplateOutlet]`

Итак, у меня есть компонент с <template>

<some-component [data]="someArray">
  <template>foo<template>
</some-component>

и он использует это, чтобы получить шаблон

@ContentChild(TemplateRef)
public tmpl: TemplateRef<any>;

который затем используется в его шаблоне, подобном этому

<div *ngFor="let item of someArrayFromDataInput">
  <template [ngTemplateOutlet]="tmpl"></template>
</div>

теперь я хотел бы иметь возможность печатать некоторые данные из item в исходном шаблоне, в основном, чтобы это сделать

<some-component [data]="someArray">
  <template>foo {{ item }}<template>
</some-component>

Возможно ли это как-то?

Ответ 1

Как только эта земля https://github.com/angular/angular/pull/9042, она будет работать следующим образом

<div *ngFor="let item of someArrayFromDataInput">
  <template 
    [ngOutletContext]="{
      item: item
    }" 
    [ngTemplateOutlet]="tmpl"></template>
</div>

+

<some-component [data]="someArray">
  <template let-item="item">foo {{ item }}<template>
</some-component>

//edit: landed

Ответ 2

обновление Angular 5

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

См. также https://github.com/angular/angular/blob/master/CHANGELOG.md#500-beta5-2017-08-29

оригинальный

Похоже, вы запрашиваете ту же функцию, что и в https://github.com/angular/angular/issues/8368 (NgTemplateOutlet)

Обновление

См. Как повторить фрагмент HTML несколько раз без ngFor и без другого @Component для работы примеров Plunker.