2016-12-26 2 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

Что вы подразумеваете под значением 'default'? –

+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) 
} 

Сообщите мне, если это соответствует вашим потребностям!

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