Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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_Angular_Input_Angular2 Forms - Fatal编程技术网

Javascript 将数据从父级传递到子级(嵌套表单)

Javascript 将数据从父级传递到子级(嵌套表单),javascript,angular,input,angular2-forms,Javascript,Angular,Input,Angular2 Forms,我正在创建一个嵌套表单,其中包含保存表单的父组件和“提交”按钮。还有子组件,它就是表单本身 当我提交表单时,提交的属性变为true,我需要通知我的子组件,提交时提交现在为true 这是父组件中“提交”按钮的代码: enviarDados(model: dadosAcordo, isValid: boolean, isJuridica:boolean) { this.servError = ""; this.submitted = true;

我正在创建一个嵌套表单,其中包含保存表单的父组件和“提交”按钮。还有子组件,它就是表单本身

当我提交表单时,提交的属性变为true,我需要通知我的子组件,提交时提交现在为true

这是父组件中“提交”按钮的代码:

      enviarDados(model: dadosAcordo, isValid: boolean, isJuridica:boolean) {
        this.servError = "";
        this.submitted = true; 
        //more code
       }
<div class="wrap-acordo">
  <form [formGroup]="formDadosBancarios" novalidate class="" (ngSubmit)="enviarDados(formDadosBancarios.value)">
      <div formArrayName="dados_titular">
        <div *ngFor="let dados_titular of formDadosBancarios.controls.dados_titular.controls; let i=index">
          <div [formGroupName]="i">
            <div class="col s12" *ngIf="formDadosBancarios.controls.dados_titular.length > 1">
              <span class="span-removeTitular right-align" (click)="removeTitular(i)"> Remover {{i+1}}º Titular </span>
            </div>
            <titular (modelChanged)="recebeValidators($event)" [group]="formDadosBancarios.controls.dados_titular.controls[i]"></titular>
          </div>
        </div>
      </div>
      <div class="col s12 m6">
        <input type="submit" class="botao-medio btn-aceita" value="Aceitar">
      </div>
      <div class="col s12 m6">
        <input type="button" class="botao-medio btn-recusa" value="Recusar">
      </div>
    </div>
  </form>
</div>
到目前为止,子组件是这样的:

export class TitularComponent implements OnChanges {
  @Input('group') // this is the input for the form
  @Input('submitted') // input for the status of submit
  public titularForm: FormGroup;
  @Output() modelChanged = new EventEmitter();


  constructor(private _fb: FormBuilder, private finalizaAcordo:FinalizaNegociacaoService) {} 

  ngOnChanges(){

  }
// more code
这是父组件上的html:

      enviarDados(model: dadosAcordo, isValid: boolean, isJuridica:boolean) {
        this.servError = "";
        this.submitted = true; 
        //more code
       }
<div class="wrap-acordo">
  <form [formGroup]="formDadosBancarios" novalidate class="" (ngSubmit)="enviarDados(formDadosBancarios.value)">
      <div formArrayName="dados_titular">
        <div *ngFor="let dados_titular of formDadosBancarios.controls.dados_titular.controls; let i=index">
          <div [formGroupName]="i">
            <div class="col s12" *ngIf="formDadosBancarios.controls.dados_titular.length > 1">
              <span class="span-removeTitular right-align" (click)="removeTitular(i)"> Remover {{i+1}}º Titular </span>
            </div>
            <titular (modelChanged)="recebeValidators($event)" [group]="formDadosBancarios.controls.dados_titular.controls[i]"></titular>
          </div>
        </div>
      </div>
      <div class="col s12 m6">
        <input type="submit" class="botao-medio btn-aceita" value="Aceitar">
      </div>
      <div class="col s12 m6">
        <input type="button" class="botao-medio btn-recusa" value="Recusar">
      </div>
    </div>
  </form>
</div>

有人能帮我吗?谢谢:

在父组件中,单击按钮时,将此设置为。formsubmitted=true。在子组件中,使用@input将提交的表单设置为输入。如果您需要在formsubmitted变为true后进行dp操作,请对输入formsubmitted使用ngonchanges。 Ngonchangeschange:Simplechange{ ifchanges['submitted']&更改['submitted'].currentvalue{ 在这里做你的事 } }


您可以参考

使用@Input!是的,我们需要一些代码…现在它有一些代码谢谢你的回答,我用一些代码编辑了这个问题,你能帮我吗?孩子们怎么知道表单是与输入一起提交的呢?当孩子们的输入值在这里被提交时,可以使用上面代码中的ngonchanges来检测更改,谢谢RemyaJ,但是我不应该在html中做些什么吗?差不多,是的。方括号中提交的是您对子组件的输入,其值是第二次提交的值,即其在父组件中的值。对!就这样。非常感谢你的耐心,这对我帮助很大