2016-05-13 4 views
12
  • Формы, которая представляет состояние сущности редактируются (оказывается грязным)
  • формы представляются и состояние объекта теперь совмещено с состоянием формы, что означает, что форма должна теперь быть установлена ​​как нетронутая.

Как это сделать? Был $setPristine() в ng1. Btw, я говорю о ControlGroup тип формы.Как установить форму как нетронутую?

ответ

8

обновление

В новом модуле формы это была улучшена много.

AbstractControl, базовый класс большинства классов форм обеспечивает

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 

и ряд других новых методов

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 

Это в настоящее время не поддерживается. См. https://github.com/angular/angular/issues/5568 и https://github.com/angular/angular/issues/4933. Обычным обходным путем является воссоздание формы, чтобы получить первозданный.

+0

........... super ........... – Birowsky

0
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

Это будет отображаться в rc5 или более поздней версии.

Смежные вопросы