Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重置父组件上子组件的输入字段';提交表格_Javascript_Forms_Angular_Typescript_Angular Components - Fatal编程技术网

Javascript 重置父组件上子组件的输入字段';提交表格

Javascript 重置父组件上子组件的输入字段';提交表格,javascript,forms,angular,typescript,angular-components,Javascript,Forms,Angular,Typescript,Angular Components,这不是调试问题,我们正在寻找关于该问题最佳解决方案的概念指导 在我们的公司里,我们有一个 具有 具有 具有 具有 我们需要做什么? 在上单击或提交的,重置和的元素 以下是没有FormBuilder的,执行实际重置比较困难,但您可以执行以下操作: <form #form="ngForm" (ngSubmit)="save()"></form> @ViewChild('form') form; save(): void { this.form.resetFor

这不是调试问题,我们正在寻找关于该问题最佳解决方案的概念指导

在我们的公司里,我们有一个

  • 具有
  • 具有
  • 具有
  • 具有
我们需要做什么?

  • 上单击或提交
    ,重置
    元素

以下是没有
FormBuilder的

,执行实际重置比较困难,但您可以执行以下操作:

<form #form="ngForm" (ngSubmit)="save()"></form>

@ViewChild('form') form;

save(): void {
  this.form.resetForm()
}
父组件:

<form>
  <level-1 [val]="myVal"></level-1>
</form>
public form: FormGroup = this.fb.group({
  someProp: ''
});

<form [formGroup]="form">
  <level-1 [val]="form"></level-1>
</form>
编辑:

使用
FormBuilder
可以:

父组件:

<form>
  <level-1 [val]="myVal"></level-1>
</form>
public form: FormGroup = this.fb.group({
  someProp: ''
});

<form [formGroup]="form">
  <level-1 [val]="form"></level-1>
</form>
public form:FormGroup=this.fb.group({
someProp:'
});
第一级:

<level-2 [val]="val"></level-2>
<level-2 [val]="val"></level-2>

第2级:

<textarea [(ngModel)]="val.someProp"></textarea>
<div [formGroup]="val">
  <textarea formControlName="someProp"></textarea>
</div>


然后使用
this.form.reset()

重置表单,而不使用
FormBuilder
执行实际重置比较困难,但您可以执行以下操作:

<form #form="ngForm" (ngSubmit)="save()"></form>

@ViewChild('form') form;

save(): void {
  this.form.resetForm()
}
父组件:

<form>
  <level-1 [val]="myVal"></level-1>
</form>
public form: FormGroup = this.fb.group({
  someProp: ''
});

<form [formGroup]="form">
  <level-1 [val]="form"></level-1>
</form>
编辑:

使用
FormBuilder
可以:

父组件:

<form>
  <level-1 [val]="myVal"></level-1>
</form>
public form: FormGroup = this.fb.group({
  someProp: ''
});

<form [formGroup]="form">
  <level-1 [val]="form"></level-1>
</form>
public form:FormGroup=this.fb.group({
someProp:'
});
第一级:

<level-2 [val]="val"></level-2>
<level-2 [val]="val"></level-2>

第2级:

<textarea [(ngModel)]="val.someProp"></textarea>
<div [formGroup]="val">
  <textarea formControlName="someProp"></textarea>
</div>



然后使用
this.form.reset()

重置表单是否使用FormBuilder?您可以在子组件中使用@Input,并根据输入清除form@Chrillewoodz我们现在还没有使用
FormBuilder
。嘿,是否相同?您已经问过这个问题,那么为什么要再次发布它?您是否使用FormBuilder?您可以在子组件中使用@Input,并根据输入清除form@Chrillewoodz我们现在还没有使用
FormBuilder
。嘿,是一样的吗?你已经问过这个问题了,那你为什么要再次发布它?你能举例说明如何使用
FormBuilder
重置我们代码中的表单吗?@Xameramir完成。我添加了你建议的代码,但是它没有在@Xameramir中运行。我可以在周一查看它。我添加了你建议的代码,出于某些原因,它没有运行在@Xameramir中。您能否给出一个如何使用
FormBuilder
重置代码中表单的示例?@Xameramir完成。我添加了您建议的代码,但是它没有运行在@Xameramir中。我可以在周一查看它。我添加了您建议的代码,出于某些原因,它没有运行在中