Angular 如何正确发出从表单获取数据到父组件的事件

How to correctly emit an event that takes data from a form to the parent component in Angular

在子组件的表单中发生值更改时,我试图使用表单中更改的数据向父组件发送一个事件,但它一直告诉我

import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';

export class ClaimItemBoxesComponent implements OnInit {
 @Output() updatedBoxData = new EventEmitter();
 ngOnInit(): void {
    this.items.valueChanges.subscribe(this.onBoxFormChage);
 }
 onBoxFormChage(item) {
   this.updatedBoxData.emit(item) // Cannot read properties of undefined (reading 'updatedBoxData')
 }
}

如果我在订阅外部的 ngOnInit 中发出事件,它会正常工作,但如果在订阅内部则不会。

你在这里丢失了上下文,绑定它,或者使用lambda函数:

ngOnInit(): void {
    this.items.valueChanges.subscribe(this.onBoxFormChage.bind(this));
}

ngOnInit(): void {
    this.items.valueChanges.subscribe((value) => this.onBoxFormChage(value));
}