zoukankan      html  css  js  c++  java
  • [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"
        }
      };
    }
  • 相关阅读:
    建造者模式
    模板方法模式
    抽象工厂模式
    工厂方法模式
    Josephus环问题
    单例模式
    求两个数的最大公约数
    Nginx的安装与部署
    左京大夫显辅
    java 调用第三方系统时的连接代码-记录
  • 原文地址:https://www.cnblogs.com/Answer1215/p/6012367.html
Copyright © 2011-2022 走看看