• [Angular2 Form] Check password match


    Learn how to create a custom validator to check whether passwords match.

    <h1>password match</h1>
    <form novalidate autocomplete="off" [formGroup]="signupForm">
      <div class="form-field">
        <label>Password:</label>
        <input type="text" formControlName="password" [(ngModel)]="signup.password" name="password">
      </div>
      <div class="form-field">
        <label>Confirm Password: </label>
        <input type="text" formControlName="confirm" [(ngModel)]="signup.confirm" name="confrim"></div>
    </form>
        this.signupForm = fb.group({
          password: [
            '',
            Validators.required
          ],
          confirm: [
            '',
            [
              Validators.required,
              confirmPasswords.bind(undefined, this.signup)
            ]
          ]
        });

    confirmPasword validator is just a function, also a curry function. So it means it will be invoked when we pass the value 'confirm' password field. 

    So if we want to send extra params, we can use '.bind(undefined, extraParam)'.

    bind to undefined context, will keep the context when it get invoked, then send a extraParam

    The extraParam will be 'passwords' and the value later be passed in is 'confirm'.

    confirmPassword.ts:

    export function confirmPasswords(passwords, confirm) {
      const valid = passwords.password&& passwords.password === confirm.value;
      return valid ? null : {
        confirmPassword: {
          valid: false,
          message: "Two passwrods are not the same"
        }
      };
    }
  • 相关阅读:
    十一周总结
    第十周课程总结
    第九周课程总结&实验报告
    第八周课程总结&实验报告
    第七周&实验报告五
    第六周&Java实验报告四
    课程总结
    第十四周课程总结
    第十三周总结
    十二周课程总结
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6012367.html
Copyright © 2020-2023  润新知