【问题标题】:How to pass reactive form control from child to parent component in angular 2如何在角度2中将反应式表单控件从子组件传递到父组件
【发布时间】:2017-11-19 20:52:11
【问题描述】:

我有嵌套的反应形式,如下所示

父 HTML

<form>
 <child></child>
 <button mat-raised-button color="primary">Save</button>
</form>

子 HTML

<div [formGroup]="headerSection">
 <input type="text" formControlName="test">
 <!span [hidden]="headerSection.get('test').valid">required</span> 
</div>

我想在子 HTML 中抛出错误消息,但是当单击父提交按钮时...

【问题讨论】:

  • 我猜 是一个错字
  • 嘿!答案是否对您有帮助,还是还有一些麻烦? :)

标签: angular


【解决方案1】:

我没有看到您实际上是在将 formgroup 传递给您的孩子?所以先这样做,然后我会添加另一个输入,一个布尔值,当表单提交时设置为true

所以你的父母 ts:

submitted = false;

this.myForm = this.fb.group({
  test: ['', Validators.required]
});

子标签:

<child [headerSection]="myForm" [submitted]="submitted"></child>

然后在您的孩子中显示表单并添加何时显示/隐藏验证消息的条件:

@Input() headerSection: FormGroup;
@Input() submitted: boolean;

HTML:

<div [formGroup]="headerSection">
  <input type="text" formControlName="test">
  <span *ngIf="!headerSection.controls.test.valid && submitted">required</span> 
</div>

终于DEMO

【讨论】:

    【解决方案2】:

    在 Angular 2 中,您必须将子元素创建为具有 @Input 和 @Output(作为 Emmiter)字段的组件,以便与父组件交互。

    【讨论】:

    猜你喜欢
    • 2019-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-23
    • 2023-04-09
    • 2020-08-24
    • 1970-01-01
    相关资源
    最近更新 更多