Angular 验证程序与表单中的其他值相同

Angular 验证程序与表单中的其他值相同,angular,angular2-forms,angular2-formbuilder,Angular,Angular2 Forms,Angular2 Formbuilder,我想知道是否有一个验证器可以比较来自同一表单的两个不同值-假设我有以下内容: this.loginForm = fb.group({ email: ["", Validators.required], password: ["", Validators.required], repeatPassword: ["", Validators.required] }); 我在文档中找到了它,但是它并没有太大帮助 有什么想法吗?您需要为完整的表单组分配一个验证

我想知道是否有一个验证器可以比较来自同一表单的两个不同值-假设我有以下内容:

 this.loginForm = fb.group({
      email: ["", Validators.required],
      password: ["", Validators.required],
      repeatPassword: ["", Validators.required]
  });
我在文档中找到了它,但是它并没有太大帮助


有什么想法吗?

您需要为完整的表单组分配一个验证器来实现这一点。诸如此类:

this.form = fb.group({
  name: ['', Validators.required],
  email: ['', Validators.required]
  matchingPassword: fb.group({
    password: ['', Validators.required],
    repeatPassword: ['', Validators.required]
  }
}, {validator: this.areEqual}));   <--------
有关更多详细信息,请参见此问题:

areEqual(group: ControlGroup) {
  var valid = false;

  for (name in group.controls) {
    var val = group.controls[name].value

    (...)
  }

  if (valid) {
    return null;
  }

  return {
    areEqual: true
  };
}