我想检查自定义表单验证以获取数据库中的唯一用户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实例时出现错误的主要内容,如果未能解决你的问题,请参考以下文章

在表单字段验证中获取请求

Joomla 2.5 中的验证码自定义表单

在电子邮件密码身份验证中进行额外的自定义检查 (Flutter - Firebase)

如何验证 React.propTypes 中的输入以获取自定义函数的输入?

创建自定义 codeigniter 验证规则

Angular 11 自定义 ISBN 验证器响应式表单