I am facing a problem in formGroup . First, based on the URL, I take some value and call the API to retrieve specific user data for the text before the field.
register.html
<form [formGroup]="form" (ngSubmit)="onSubmit(form.value)" class="form-horizontal"> <div class="form-group row"> <label for="inputEmail3" class="col-sm-4 ">Username</label> <div class="col-sm-8"> <input [formControl]="email" type="text" class="form-control" id="inputEmail3" placeholder="Email Address" [readonly]="isReadOnly"> </div> </div> </form>
register.component.ts
import { Component } from '@angular/core'; import { FormGroup, AbstractControl, FormBuilder, Validators } from '@angular/forms'; import { Router, ActivatedRoute } from '@angular/router'; import { EmailValidator, EqualPasswordsValidator } from '../../theme/validators'; @Component({ selector: 'register', templateUrl: './register.html', }) export class Register { public form: FormGroup; public email: AbstractControl; public username: string; constructor(private registerService: RegisterService, fb: FormBuilder, private router: Router, private route: ActivatedRoute) { this.form = fb.group({ 'email': ['', Validators.compose([Validators.required])] .... etc.. }); this.email = this.form.controls['email']; this.registerService.getUser({ userId: "asdasd2123da2das" }).subscribe(posts => { if (posts) { var userObj = posts.json(); console.log("userObj : ", userObj.data); if (userObj.data && userObj.data[0].email) { this.email = this.username = userObj.data[0].email;
Error Details:
TypeError: Cannot create property 'validator' on string 'abc@gmail.com' at setUpControl (http://localhost:3004/vendor.dll.js:9739:23) at FormControlDirective.ngOnChanges (http://localhost:3004/vendor.dll.js:44196:89) at Wrapper_FormControlDirective.ngDoCheck (/ReactiveFormsModule/FormControlDirective/wrapper.ngfactory.js:50:18)
javascript angular angular2-template angular2-routing angular2-forms
higunjan
source share