如何在Angular中获取反应形式输入的值?

时间:2018-12-06 22:22:19

标签: angular firebase firebase-authentication angular-services angular-reactive-forms

我需要获取反应性表单输入—use-database-names @GET public Response getPlayers( @Context Request request) { List<Player> players = database.getAll(); ........ } 并将它们传递给我的函数,该函数调用注册服务方法以使用电子邮件在Firebase中注册新用户。不幸的是,在提交表单后的Chrome控制台中,我得到了email

我的代码现在看起来像这样:

register.component.ts

password

我的AuthService文件:

RegisterComponent.html:2 ERROR ReferenceError: email is not defined

这只是我与该问题相关的代码的一部分。我不包括注册表,因为它又大又乱,所以我认为您不需要看它。预先感谢。

编辑:

register.component.html

export class RegisterComponent {
  form: FormGroup;

  constructor(fb: FormBuilder, private authService: AuthService) {
    this.form = fb.group({
  email:['',Validators.required ],
  password:['',Validators.compose([Validators.required,
    PasswordValidator.cannotContainSpace])]
    })
    email = this.form.controls['email'].value;
    password = this.form.controls['password'].value;
   }


   signInWithEmail() {
     this.authService.regUser(this.email, this.password);
   }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以使用以下方法获得反应式的价值:

signInWithEmail() {
     const formValue = this.form.value;
     this.authService.regUser(formValue.email, formValue.password);
}

顺便说一句,我认为您应该在服务内部调整regUser方法参数,使其同时使用这两个参数:

您的服务

regUser(email, pass) {
    firebase.auth().createUserWithEmailAndPassword(email, pass)
 .catch(function(error) {
   // Handle Errors here.
   var errorCode = error.code;
   var errorMessage = error.message;
   // ...
 });
    }