Angular 角度-将数据传递到父组件

Angular 角度-将数据传递到父组件,angular,Angular,我的父组件中包含以下内容: obj: any = { row1: [], row2: [], total: [], sumTotal: 0 }; 我将obj传递给子组件: <tr table-tr-tr *ngFor="let key1 of channels[name];let i=index" [key1]="key1" [data]="array" [field]="key1" [width]="width" [plantype]="plantype" [custom

我的父组件中包含以下内容:

 obj: any = { row1: [], row2: [], total: [], sumTotal: 0 };
我将obj传递给子组件:

<tr table-tr-tr *ngFor="let key1 of channels[name];let i=index" [key1]="key1" [data]="array" [field]="key1"
      [width]="width" [plantype]="plantype" [custom]="custom" [i]="i" [row]="row" [obj]="obj"></tr>
  </table>

在子组件中,我有以下内容:

  ngOnInit() {
    for (let index = 0; index < this.data.length; index++) {
      this.array.push({ code: index, value: 0 });
    }
    this.obj['row2'][this.field] = this.array;

  }
ngOnInit(){
for(让index=0;index

在这个子组件中,我有另一个子组件,我在其中更改数组的值,但在父对象上它并没有更改。有什么建议我怎样才能做到这一点

您应该尝试使用服务将值从一个组件传递到另一个组件。

在这个子组件中,我有另一个子组件 更改数组的值,但其在父对象上不更改

在角度上,父组件和子组件之间的数据流不是双向的。因此,您在子组件中所做的更改不会反映在父组件中

// Update parent component data.
this.updateObjDataEvent.emit(obj);
updateObj(data) {
  // Do something.
}
您可以使用
EventEmitter
将事件从子组件发射到父组件

// Update parent component data.
this.updateObjDataEvent.emit(obj);
updateObj(data) {
  // Do something.
}
子组件:

在子组件中,声明一个
EventEmitter
对象

@Output() updateObjDataEvent: EventEmitter<any> = new EventEmitter<any>();
父组件:

在父组件模板中,订阅此事件:

<app-child-component-selector (updateObjDataEvent)="updateObj($event)">
</app-child-component-selector>

updateObj()
方法中,您可以更新父组件的数组对象。

服务不容易控制,如输入、取消订阅等…使用事件发射器可以帮助,但请记住,没有双向通信。您是否尝试过使用
EventEmitter
将事件从子组件发送到父组件?在角度上,父组件和子组件之间的数据流不是双向的。