Angular - 只更改ngFor循环的一个元素

时间:2017-09-06 10:18:07

标签: angular ngfor

我有以下angular模板,其中显示了项目列表。

<div *ngFor="let i of immobili | async">
    <div [ngSwitch]="edit" (update)="editUpdate($event)">
      <immobile-detail (onEdit)="isEdit($event, i)" *ngSwitchCase="false" [immobile]="i" [idR]="idRichiesta"></immobile-detail>
      <immobile-form (onEdit)="isEdit($event, i)" *ngSwitchCase="true" [immobile]="i" [idR]="idRichiesta"></immobile-form>
    </div>
  </div>

如果某个项目上发生了某个事件,我会显示两个不同的组件。问题是组件会更改每个项目,而不仅仅是我选择的项目。有没有办法只为我注册事件的项目切换组件?提前感谢您的提示。

修改 我会更好地解释 我有这样的情况:

<parent>
  <div *ngFor="let i of immobili | async">
    <child1></child1>
    <child2></child2>
  </div>
</parent>

因此,对于列表中的每个对象,我可以根据在两个子视图之一中创建的选择来显示组件child1child2。我设法让孩子们使用@Output指令与父母沟通,这很好。问题是,当我在两个孩子之间切换时,列表中所有对象的组件也会发生变化。我认为这是因为更改是在父级别进行的。相反,我想只更改引用我选择的元素的组件,可能会传递对象索引或其他东西 FYI最后我解决了我的问题,因为由于其他原因我使用了不同的方法(只有一个组件),但我真的很想知道如何做到这一点。感谢。

0 个答案:

没有答案