2016-12-26 4 views
1

ich diese reaktive Form haben, die einen einzelnen Wert vorträgt, die titleReactive Form, wie zusätzliche Daten vorlegen

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

Was, wenn ich zusätzliche default Wert dem formGroup Objekt hinzufügen? Wie Typ: "Diskussion".

Also, wenn ich übermittle ich so etwas wie dies in der Konsole erwarten, dass diese

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

wie zu tun?

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

+0

Was meinen Sie mit 'default' Wert? –

+0

Was auch immer der Titel ist, der Typ wird gleich "Diskussion" sein. So {title: 'das ist nur eine Zeichenfolge', geben Sie 'discussion' ein} –

Antwort

3

einfach den Konstruktor dies ändern:

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

Sie Folgendes tun können, die Art in der FormGroup Definition hinzufügen und den Wert in der onSubmit() -Methode festgelegt. Gefällt mir:

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

Lassen Sie mich wissen, ob das Ihren Bedürfnissen entspricht!

Verwandte Themen