如何使用双向数据绑定将数据从子组件传递到父组件?

Posted

技术标签:

【中文标题】如何使用双向数据绑定将数据从子组件传递到父组件?【英文标题】:How to use Two-Way Data Binding to pass data from child to parent component? 【发布时间】:2017-02-23 13:26:02 【问题描述】:

我正在尝试将一个布尔值从我的模态组件传递给我的主要组件,但它不起作用。

我的模态(孩子):

export class ModalForm implements OnChanges
    @Input() isVisible;
    @Output() visibleChange: EventEmitter<number> = new EventEmitter<number>();
    constructor() 
        this.isVisible = false;
     
    save() 
          this.isVisible = false;
          this.visibleChange.emit(this.isVisible);
        );
    

我的主要组件:

<section [class.modalOpen]="isModalFormVisible>
   <modal-form [(isVisible)]="isModalFormVisible"></modal-form>
</section>

有什么想法吗?

【问题讨论】:

【参考方案1】:

为了使速记双向绑定起作用,输入和输出的名称需要匹配输出具有附加 Change 后缀的位置

@Input() isVisible;
@Output() isVisibleChange: EventEmitter<number> = new EventEmitter<number>();

那么你就可以像这样使用它了

<modal-form [(isVisible)]="isModalFormVisible"></modal-form>

使用您的代码,您需要长格式:

<modal-form [isVisible]="isModalFormVisible" (visibleChange)="isModalFormVisible = $event"></modal-form>

【讨论】:

【参考方案2】:

你的主要组件

<section [class.modalOpen]="isModalFormVisible>
   <modal-form (visibleChange)="modalVisibleChanged($event)"></modal-form>
</section>

你的 main.component.ts

modalVisibleChanged(event)
    this.isModalFormVisible = event;

【讨论】:

以上是关于如何使用双向数据绑定将数据从子组件传递到父组件?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Reactjs 中将数据从子组件传递到父组件? [复制]

将数据从子功能组件传递到父组件 - React/Typescript

将数据从子组件传递到父组件Angular4

React Hook:将数据从子组件发送到父组件

如何在Angular中将表单数据从子组件传输到父组件

如何将变量的值从子组件发送到父组件?