2016-12-26 103 views
1

我有提交一个值这个反应形式,在title反应形式如何提交额外的数据

@Component({ 
    template: ` 
     <form [formGroup]="formGroup" (ngSubmit)="onSubmit()" novalidate> 
      <input class="form-control" placeholder="title" name="title" id="title" formControlName="title" /> 
      <div *ngIf="formGroup.controls['title'].dirty && formGroup.controls['title'].invalid">This is required</div> 
      <button type="submit">Create</button> 
     </form> 
    `, 
}) 
export class CreateDiscussionComponent { 

    formGroup: FormGroup; 

    constructor() { 
     this.formGroup = new FormGroup({ 
      title: new FormControl('', [Validators.required, Validators.minLength(1)]) 
     }); 
    } 
    onSubmit(): void { 
     console.log('form value', this.formGroup.value) 
    } 
} 

如果我想额外default值添加到formGroup对象?像类型:'讨论'。

所以,当我提出我希望这样的事情在控制台

{title:'bla bla bla', type:'discussion'} 

如何做到这一点?

https://plnkr.co/edit/RY62cBHMTLLjaDCIA6mc?p=preview

+0

你是什么意思的默认值? –

+0

无论标题是什么,类型将被平等地讨论。像这样{title:'这只是字符串',输入:'disucssion'} –

回答

3

构造就改成这样:

constructor() { 
     this.formGroup = new FormGroup({ 
      title: new FormControl('', [Validators.required, Validators.minLength(1)]), 
      type : new FormControl('discussion') 
     }) 
    } 
1

你可以做到以下几点,在FormGroup定义添加的类型,并在的onsubmit()方法中设置的值。像这样:

formGroup: FormGroup; 

constructor() { 
    this.formGroup = new FormGroup({ 
     title: new FormControl('', [Validators.required, Validators.minLength(1)]), 
     type: new FormControl('') 
    }); 
} 
onSubmit(): void { 
    (<FormControl>this.formGroup.controls['type']).setValue("discussion"); 
    console.log('form value', this.formGroup.value) 
} 

让我知道如果这符合您的需求!