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.