更改ngFor循环中调用的组件内的父值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了更改ngFor循环中调用的组件内的父值相关的知识,希望对你有一定的参考价值。

使用angular 7,我试图将一个对象传递给ngFor循环中的子组件,但是当我更改内部的值时,它不会在父级上更改。

在我的父母,我有

<div class="pieceContainer" *ngFor="let piece of data?.piece">
  <app-piece [(data)]="piece" (change)="doSomething(event$)"></app-piece>
</div>

在我的孩子我有以下,我改变模态内的数据的值,我尝试输出它:

@Input() data: any;
@Output() change: EventEmitter<any> = new EventEmitter<any>();

从模态我更改数据,然后按保存,我打电话:

this.change.emit(this.data);

有没有人知道为什么它不更新父组件中的对象值?谢谢

答案

应该

@Output() dataChange: EventEmitter<any> = new EventEmitter<any>();
另一答案

您应该传递共享数据。只是微小的变化:

<app-piece [data]="piece" (change)="doSomething('data')"></app-piece>
另一答案

对于一些感兴趣的人来说,答案就是简单地把$ event而不是$ $。

以上是关于更改ngFor循环中调用的组件内的父值的主要内容,如果未能解决你的问题,请参考以下文章

来自位于 ngFor 内的兄弟组件的角度切换布尔变量

无法启用此约束,因为并非所有值都具有相应的父值

Angular2:嵌套 *ngFor 导致“检查后表达式已更改”

无法启用此约束,因为并非所有值都有对应的父值

如何将 ngFor 循环的索引值传递给组件? [复制]

将右元素的数据从ngfor循环传递给子组件