Soy nuevo en angular y tengo un formulario con estos campos.
this.catform = new FormGroup({ name: new FormControl('', Validators.required,), source: new FormControl('', Validators.required), event: new FormControl('', Validators.required), cond: this.fb.array([this.Cond()], Validators.required) }); Cond() : FormGroup { return this.fb.group({ disp : new FormControl(1), field: new FormControl('', Validators.required), ct: new FormControl('', Validators.required), value: new FormControl('', Validators.required), ot : 'AND' }); }Después de enviar el formulario, hago this.catform.reset(), pero esto restablece "disp" y "ot" a nulo y, por lo tanto, hace que mi formulario tenga valores nulos. Ahora, cuando vuelvo a enviar este formulario, no tiene éxito en el backend ya que esos valores son nulos en el formulario, pero el backend no acepta esta creación. Así que quiero que sean como los que he mencionado anteriormente, y no lo hago tengo estos 2 campos en la plantilla HTML, por lo que no puedo editarlos desde la plantilla HTML. Por favor, si alguien pudiera sugerir alguna forma.
Convierta el siguiente código en un método. Y cuando desee restablecer, simplemente llame al método y asígnelo a this.catform
new FormGroup({ name: new FormControl('', Validators.required,), source: new FormControl('', Validators.required), event: new FormControl('', Validators.required), cond: this.fb.array([this.Cond()], Validators.required) });Como esto:
this.catform=this.getFormgroup(); private getFormgroup() { return new FormGroup({ name: new FormControl('', Validators.required,), source: new FormControl('', Validators.required), event: new FormControl('', Validators.required), cond: this.fb.array([this.Cond()], Validators.required) }); }