2017-02-07 13 views
1
@Component({ 

    template: ` 
     <form [formGroup]="formGroup" (ngSubmit)="onSubmit()" novalidate> 
      <textarea name="detail" id="detail" formControlName="detail"></textarea> 
      <div *ngIf="formGroup.controls['detail'].dirty && formGroup.controls['detail'].invalid">This is required</div> 
      <button type="submit" >Post</button> 
     </form> 
    `, 

}) 
export class CreateDiscussionComponent { 
    formGroup: FormGroup; 
    submitted: boolean = false; 
    constructor(
    ) { 
     this.formGroup = new FormGroup({ 
      detail: new FormControl('', [Validators.required, Validators.minLength(2) ]), 
      type : new FormControl('discussion'), 
      userPosts: new FormControl([]) 
     }); 
    } 
    onSubmit(): void { 
     console.log('form data', this.formGroup.value) 
     this.submitted = true; 
     this.formGroup.reset() 
    } 
} 

このコードを使用します。私が最初に形成送信したとき、私は私がtype = discussionuserposts = []角度2 - フォームは2回目にヌル値を提出します

+0

するplunkerを提供します。 –

答えて

4

リセット方法を期待していたこの

{ 
    detai: 'my text' 
    type: null 
    userPosts: null 
} 

を得た後、私は、コンソール

{ 
    detai: 'my text' 
    type: 'discusion' 
    userPosts: [] 
} 

二時間とするたびに、このオブジェクトを得ましたFormGroupの値が事前定義された値にリセットされない場合は、nullにリセットされ、状態がリセットされます(元の状態、元に戻されません)。事前に定義された値とステータスをリセットするには、次のように再び値を設定する必要があります。

this.form.reset({ 
    type: 'discussion', 
    userPosts: [] 
}); 

参考:https://angular.io/docs/ts/latest/api/forms/index/FormGroup-class.html#!#reset-anchor

関連する問題