如何在 Angular 中获取反应形式输入的值? [英] How to get values of reactive form inputs in Angular?
问题描述
我需要获取响应式表单输入 email
和 password
并将它们传递给我的函数,该函数调用 register 服务方法使用电子邮件在 firebase 中注册新用户.不幸的是,在表单提交后的 chrome 控制台中,我得到 RegisterComponent.html:2 ERROR ReferenceError: email is not defined
我的代码现在看起来像这样:
register.component.ts
导出类 RegisterComponent {表格:表格组;构造函数(fb:FormBuilder,私有authService:AuthService){this.form = fb.group({电子邮件:['',Validators.required ],密码:['',Validators.compose([Validators.required,PasswordValidator.cannotContainSpace])]})email = this.form.controls['email'].value;密码 = this.form.controls['password'].value;}登录邮箱(){this.authService.regUser(this.email, this.password);}}
我的 AuthService 文件:
regUser() {firebase.auth().createUserWithEmailAndPassword(email, pass).catch(函数(错误){//在这里处理错误.var errorCode = error.code;var errorMessage = error.message;//...});console.log(this.form.controls['email'].value);}
这只是与问题相关的代码的一部分.我不包括注册表,因为它又大又乱,所以我认为你不需要看到它.提前致谢.
注册.component.html
<form [formGroup]="form" (ngSubmit)="signInWithEmail()"><div class="form-group"><label for="email">电子邮件</label><input type="email" class="form-control" formControlName="email"><div *ngIf="form.controls.email.touched&&!form.controls.email.valid" class="alert alert-danger">电子邮件是必需的
<div class="form-group"><label for="password">密码</label><input type="password" class="form-control" formControlName="password"><div *ngIf="form.controls.password.touched && form.controls.password.errors"><div *ngIf="form.controls.password.errors.invalidLogin"class="警报警报-危险">电子邮件或密码无效.
<div *ngIf="form.controls.password.errors.required"class="警报警报-危险">密码是必需的.
<div *ngIf="form.controls.password.errors.cannotContainSpace"class="警报警报-危险">密码不能包含空格.