如何验证离子形式

How to give validation for form in ionic

我有这样一张注册表。你能帮我如何为此表单提供自定义名称和电子邮件验证吗

registrationForm = this.formBuilder.group({
    name: [''],
    email: [''],
    phone: [''],
    address: this.formBuilder.group({
      street: [''],
      city: [''],
      state: [''],
      zip: ['']
    })
  });

你可以试试这个,我已经向你展示了注册用户的正常实现, 在那里你可以看到我已经使用该服务来获取响应,如果有任何错误,我正在检查错误并使用 toast 消息显示。

export class RegisterPage implements OnInit {
  resgiterForm: FormGroup;
  submitted: boolean = false;
  constructor(
    private formBuilder: FormBuilder,
    public navigation: NavigationPageAndParamsService,
    public userService: UserService,
    public toastController:ToastController
  ) {}

  ngOnInit() {
    this.resgiterForm = this.formBuilder.group({
      username: ['', Validators.required],
      email: ['', [Validators.required, Validators.email]],
      password: ['', [Validators.required, Validators.minLength(6)]],
    });
  }
  get f() {
    return this.resgiterForm.controls;
  }
  async register() {
    console.log('What is the regsistration information', this.resgiterForm);
    this.submitted = true;
    if (this.resgiterForm.invalid) {
      return;
    }
    this.userService.registerUser(this.resgiterForm.value).subscribe(
      data => {
        console.log('Data', data);
        if (data) {
          this.navigation.navigateToPage('/tabs/feeds');
        }
      },
      async err => {
        var err = err.error[0].message;
        const toast = await this.toastController.create({
          message: err,
          duration:3000,
          position:'bottom',
          cssClass:'registration-toast'
        })
       await toast.present()
      }
    );
  }
}




<form [formGroup]="resgiterForm" (submit)="register()">
    <ion-list>

        <ion-item class="ion-padding-end ion-padding-start">
            <ion-label position="stacked">Username*</ion-label>
            <ion-input type="text" formControlName="username" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.username.errors }">
            </ion-input>
        </ion-item>
        <div *ngIf="submitted && f.username.errors" class="invalid-feedback">
            <div *ngIf="f.username.errors.required">Username is required</div>
        </div>
        <ion-item class="ion-padding-end ion-padding-start">
            <ion-label position="stacked">Email*</ion-label>
            <ion-input type="text" formControlName="email" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.email.errors }">
            </ion-input>
        </ion-item>
        <div *ngIf="submitted && f.email.errors" class="invalid-feedback">
            <div *ngIf="f.email.errors.required">Email is required</div>
            <div *ngIf="f.email.errors.email">Email must be a valid email address</div>
        </div>

        <ion-item class="ion-padding-end ion-padding-start">
            <ion-label position="stacked">Password</ion-label>
            <ion-input type="password" formControlName="password" class="form-control" [ngClass]="{ 'is-invalid': submitted && f.password.errors }"></ion-input>
        </ion-item>
        <div *ngIf="submitted && f.password.errors" class="invalid-feedback">
            <div *ngIf="f.password.errors.required">Password is required</div>
            <div *ngIf="f.password.errors.minlength">Password must be at least 6 characters</div>
        </div>
    </ion-list>
    <ion-list class="ion-text-center ion-padding-vertical">
        <ion-button type="submit" shape="round">Submit</ion-button>
    </ion-list>
</form>