从Angular Form Controls创建Javascript对象时出现编译错误

时间:2018-02-08 16:10:50

标签: angular

我的模特是

export class User {
  firstname:string = '';
  lastname:string = '';
  email:string = '';

  constructor(values:Object={}){
    Object.assign((this,values));
  }

}

我在Angular

中创建了一个注册表单
 signupForm:FormGroup;

  constructor(private userManagementService: UserManagementService, private fb:FormBuilder) {
    this.createForm();
  }

  createForm(){
    this.signupForm = this.fb.group({
      firstName:['',Validators.required], 
      lastName:['',Validators.required],
      email:['',Validators.required],
      password:['',Validators.required]
    });
  }

  addUser(){
    this.newUser = new User({
      this.signUpForm.get('firstName').value,
      this.signUpForm.get('lastName').value,
      this.signUpForm.get('email').value
    });
    console.log("in SignupComponentComponent: addUser: "+this.newUser);
    this.userManagementService.addUser(this.newUser);
  }

我将从HTML按钮

调用addUser
<button type="button" (click)="addUser()"id="signup-button" class="content-div__button--blue"> Sign Up! </button>

问题是我在addUser

中的以下行收到编译错误error TS1005: ':' expected
  this.signUpForm.get('firstName').value,
  this.signUpForm.get('lastName').value,
  this.signUpForm.get('email').value

1 个答案:

答案 0 :(得分:1)

尝试以下代码段。

addUser(){
    this.newUser = new User({
      firstname: this.signupForm.get('firstName').value,
      lastname:this.signupForm.get('lastName').value,
      email:this.signupForm.get('email').value
    });