首页 > 解决方案 > 如何访问父组件的子组件中 FormControl 的值?

问题描述

我的 Angular 应用程序有一个父组件和几个子组件。

我的父组件中有一个禁用 OnInit 的“提交”按钮。仅当检查其中一个儿童组件中的一个复选框时才应启用。如果未选中该复选框,则该按钮应保持禁用状态。

这是我的父组件 HTML。如果未选中该复选框,我将尝试禁用该按钮:

<form [formGroup]="emailForm" (ngSubmit)="onSubmit()" class="form-horizontal">
    <app-conditions (formReady)="formInitialized('conditions', $event)"></app-conditions>
    <app-damage-details-one (formReady)="formInitialized('damageDetailsOne', $event)"></app-damage-details-one>
    <app-damage-details-two (formReady)="formInitialized('damageDetailsTwo', $event)"></app-damage-details-two>
    <app-personal-info></app-personal-info>
    <app-send></app-send>

    <card>
        <card-footer>
            <button button class="axis-btn" type="submit" title="Confirm and send" data-kind="primary"
[disabled]="emailForm.conditions.acceptTerms.checked === false">Confirm and send</button>
        </card-footer>
    </card>
</form>

我试图引用的复选框位于下方(conditions.component.html)。

我父母中的app-conditions是指这个孩子:

<div [formGroup]="conditionsForm">
    <card>
        <card-body>
            <div class="form-group">
                <label class="control-label" for="Accept">{{lblAccept} </label>
                <checkbox formControlName="acceptTerms" cid="Accept" heading="Accept" name="Accept" value="Accept">
                </checkbox>
            </div>
        </card-body>
    </card>
</div>

有人可以告诉我需要进行哪些更改,以便我可以根据是否选中子项中的复选框来启用/禁用父项中的按钮?非常感谢

标签: angular

解决方案


使用 AngularOutput属性

根据官方角度文档

子组件公开了一个 EventEmitter 属性,当发生某些事情时它会使用该属性发出事件。父级绑定到该事件属性并对这些事件作出反应。


推荐阅读