Solución:
Consulte también https://angular.io/docs/ts/latest/guide/reactive-forms.html (sección “restablecer los indicadores de formulario”)
> = RC.6
En RC.6 debería ser compatible para actualizar el modelo de formulario. Crear un nuevo grupo de formularios y asignar a myForm
[formGroup]="myForm"
también será compatible (https://github.com/angular/angular/pull/11051#issuecomment-243483654)
> = RC.5
form.reset();
En el módulo de nuevos formularios (> = RC.5) NgForm
tiene un reset()
método y también admite formularios reset
evento. https://github.com/angular/angular/blob/6fd5bc075d70879c487c0188f6cd5b148e72a4dd/modules/%40angular/forms/src/directives/ng_form.ts#L179
<= RC.3
Esto funcionará:
onSubmit(value:any):void {
//send some data to backend
for(var name in form.controls) {
(<Control>form.controls[name]).updateValue('');
/*(<FormControl>form.controls[name]).updateValue('');*/ this should work in RC4 if `Control` is not working, working same in my case
form.controls[name].setErrors(null);
}
}
Ver también
- https://github.com/angular/angular/issues/6196
- https://github.com/angular/angular/issues/6169
- https://github.com/angular/angular/issues/4933
- https://github.com/angular/angular/issues/4914
- https://github.com/angular/angular/issues/6371
A partir de Angular2 RC5, myFormGroup.reset()
Parece funcionar.
Para restablecer su formulario después de enviarlo, simplemente puede invocar this.form.reset()
. Llamando reset()
va a:
- Marque el control y los controles secundarios como prístino.
- Marque el control y los controles secundarios como intacto.
- Establezca el valor de control y controles secundarios en valor personalizado o nulo.
- Actualizar valor / validez / errores de las partes afectadas.
Encuentre esta solicitud de extracción para obtener una respuesta detallada. Para su información, este PR ya se ha fusionado con 2.0.0.
Con suerte, esto puede ser útil y avíseme si tiene alguna otra pregunta con respecto a Angular2 Forms.