Angular - 使用 ng-container 循环问题

Ang*_*arM 2 ng-template angular ng-container angular5

我想使用 ng-container 从 ngFor 中调用 ng-template

我的列表是一个数组,并有一个对象列表。对象的一个​​属性是标题 - 在 ng-template 中可见。

网址:

<ul>

    <li *ngFor='let item of list;let i = index'>

        <ng-container *ngTemplateOutlet="itemTemplate;context:item"></ng-container>

    </li>

</ul>

<ng-template #itemTemplate let-item="item">
    <p>{{ item?.title }}</p>
</ng-template>
Run Code Online (Sandbox Code Playgroud)

注意:问题是 let-item 似乎未定义或为空对象。这很奇怪,因为我传入了它。

cyr*_*r_x 5

您对 的使用templateOutletContext略有错误。

您可以使用$implicit上下文的键,然后将其绑定到您的模板,如下所示:

<ul>
  <li *ngFor="let item of list">
    <ng-container *ngTemplateOutlet="itemTemplate; context: { $implicit: item }">
    </ng-container>
  </li>
</ul>
<ng-template #itemTemplate let-item>
    <p>{{ item?.title }}</p>
</ng-template>
Run Code Online (Sandbox Code Playgroud)

或使用命名键:

<ul>
  <li *ngFor="let item of list">
    <ng-container *ngTemplateOutlet="itemTemplate; context: { item: item }">
    </ng-container>
  </li>
</ul>
<ng-template #itemTemplate let-item="item">
    <p>{{ item?.title }}</p>
</ng-template>
Run Code Online (Sandbox Code Playgroud)