page navigationend example change angular angular2-forms

angular - navigationend - ¿Cómo establecer una forma como prístina?



title angular (3)

  • La forma que representa el estado de la entidad se está editando (se vuelve sucia)
  • Se está enviando el formulario y el estado de la entidad ahora está alineado con el estado del formulario, lo que significa que el formulario ahora debe establecerse como prístino.

¿Como hacemos eso? Había $setPristine() en ng1. Por cierto, estoy hablando del tipo de formulario ControlGroup .



actualizar

En el nuevo módulo de formularios esto fue mejorado mucho.

AbstractControl , la clase base de la mayoría de las clases de formularios proporciona

markAsTouched({onlySelf}?: {onlySelf?: boolean}) : void markAsUntouched({onlySelf}?: {onlySelf?: boolean}) : void markAsDirty({onlySelf}?: {onlySelf?: boolean}) : void markAsPristine({onlySelf}?: {onlySelf?: boolean}) : void markAsPending({onlySelf}?: {onlySelf?: boolean}) : void

Y varios otros métodos nuevos.

disable({onlySelf, emitEvent}?: {onlySelf?: boolean, emitEvent?: boolean}) : void enable({onlySelf, emitEvent}?: {onlySelf?: boolean, emitEvent?: boolean}) : void

setValue(value: any, options?: Object) : void patchValue(value: any, options?: Object) : void

reset(value?: any, options?: Object) : void updateValueAndValidity({onlySelf, emitEvent}?: {onlySelf?: boolean, emitEvent?: boolean}) : void // (old) setErrors(errors: {[key: string]: any}, {emitEvent}?: {emitEvent?: boolean}) : void

original

Eso no es compatible actualmente. Consulte https://github.com/angular/angular/issues/5568 y https://github.com/angular/angular/issues/4933 . La solución habitual es volver a crear el formulario para obtener una prístina.


class MyComp { form = new FormGroup({ first: new FormControl(''Nancy''), last: new FormControl(''Drew'') }); } reset() { this.form.reset(); // will reset to null // this.form.reset({first: ''Nancy'', last: ''Drew''}); -- will reset to value specified }

https://github.com/angular/angular/pull/9974

Esto se mostrará en rc5 o posterior.