angular2从`[ngTemplateOutlet]`返回“<template>”数据

时间:2016-06-06 09:34:22

标签: angular

所以我有一个<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 个答案:

答案 0 :(得分:11)

更新以匹配Angular 5+ api 根据{{​​3}}

ngOutletContext已重命名为ngTemplateOutletContext

一旦登陆https://stackoverflow.com/a/37654077/301596,它就会像这样工作

<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>

//编辑:登陆

答案 1 :(得分:0)

更新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)中要求的相同功能

<强>更新

有关使用Plunker示例的信息,请参阅How to repeat a piece of HTML multiple times without ngFor and without another @Component