我想检查自定义表单验证以获取数据库中的唯一用户ID,但是formGroup期望formGroup实例时出现错误
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我想检查自定义表单验证以获取数据库中的唯一用户ID,但是formGroup期望formGroup实例时出现错误相关的知识,希望对你有一定的参考价值。
component.ts
export class CreateComponent implements OnInit
constructor(private fb: FormBuilder,private service:CreatService)
userGroup:FormGroup;
ngOnInit()
this.userGroup = this.fb.group(
name:['',Validators.required],
uid:['',[Validators.required,checkUid]],
pwd:['',Validators.required],
email:['',Validators.required],
mobile:['',[Validators.required,Validators.pattern(/^[0-9]10$/)]]
);
```
check.ts Custom Validation
```
import AbstractControl from '@angular/forms';
import CreatService from '../creat.service';
export function checkUid(control: AbstractControl,service:CreatService)
//console.log(control.value)
this.service.check(control.value).subscribe(
(res) =>
if(res===control.value)
return null;
return
isError : true
;
);
server.js
```
app.post("/check",function(req,res)
let uid = req.body.uid;
db.collection("uses").find(users:uid).toArray((err,response)=>
if(err)
throw err;
console.log(response );
if(response && response.length)
res.json(uid);
else
res.json("1");
)
)
```
而且在文本框中键入内容时,其给出的错误也无法读取未定义的属性控件。
CreateComponent.html:3错误,错误:formGroup需要一个FormGroup实例。请通过。
输出应该是这样的,应该将用户标识检入数据库并显示相应的错误消息
答案
该错误不是由于您试图通过数据库和组件来实现,而可能是由于模板。
错误明确指出formGroup
需要一个FormGroup
实例。
您可能具有:<form>
,没有formGroup
指令。
尝试:
<form [formGroup]="userGroup">
如果您在表单标签上有if条件,也可能会发生。
以上是关于我想检查自定义表单验证以获取数据库中的唯一用户ID,但是formGroup期望formGroup实例时出现错误的主要内容,如果未能解决你的问题,请参考以下文章
在电子邮件密码身份验证中进行额外的自定义检查 (Flutter - Firebase)