angular2 возвращает данные обратно в `<template>` из `[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>
это возможно как-то?
2 ответа
Обновлено в соответствии с API-интерфейсом Angular 5+ngOutletContext
был переименован в ngTemplateOutletContext
согласно /questions/9030711/angular2-vozvraschaet-dannyie-obratno-v-template-iz-ngtemplateoutlet/9030717#9030717
Как только это произойдет, https://github.com/angular/angular/pull/9042 будет работать так
<div *ngFor="let item of someArrayFromDataInput">
<template
[ngTemplateOutletContext]="{
item: item
}"
[ngTemplateOutlet]="tmpl"></template>
</div>
+
<some-component [data]="someArray">
<template let-item="item">foo {{ item }}<template>
</some-component>
// редактировать: приземлился
обновление 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.