Angularjs 角度形式验证相同的输入

Angularjs 角度形式验证相同的输入,angularjs,validation,angular-formly,Angularjs,Validation,Angular Formly,我想验证两个输入字段(电子邮件)是否正确,并使用Formly验证它们是否返回相同的值。到目前为止,我已经设法检查了validate输入字段的值是否等于email字段 vm.fields = [ { key: 'email', type: 'input', templateOptions: { label: 'Email' } }, { key: 'validateEmail', type: 'input', temp

我想验证两个输入字段(电子邮件)是否正确,并使用Formly验证它们是否返回相同的值。到目前为止,我已经设法检查了validate输入字段的值是否等于email字段

vm.fields = [
  {
    key: 'email',
    type: 'input',
    templateOptions: {
      label: 'Email'
    }
  },
  {
    key: 'validateEmail',
    type: 'input',
    templateOptions: {
      label: 'Validate Email',
    },
    validators:{
      macAddress: {
        expression: function(viewValue, modelValue, scope){
          return modelValue === scope.model["email"]; 
        }
      }
    }
  }
]; 
可以找到JS小提琴


但是,此验证仅在填充第二个字段时发生。在填写电子邮件时,是否有方法进行此验证

在angular formly网站下已经有一个这样做的例子。请检查这个:


请注意,formly的当前版本存在一个问题(我也在绞尽脑汁),并试图找到一个解决方案。这是第一个电子邮件字段,但不应影响您在此尝试完成的任务。

在填写第一个电子邮件字段时,您希望运行哪种类型的验证?检查有效的电子邮件格式或将其与validateEmail字段进行比较?@Obaid我想将validateEmail字段与电子邮件字段中的新值进行比较。然后,如果validateEmail无效(即-等于新值),我希望将其标记为invalid@nipuna777由于在验证通过之前不会设置模型,因此无法通过两种方式进行验证。请参阅:@Obaid我明白了,但是有没有方法可以从email元素中更改validateEmail的验证?另外,我以前是通过观察作用域中“email”的值来实现这一点的,如果在那里设置$valid。为此,我们需要输入字段名。它现在由Formly生成。。。有没有一种方法可以复制这种行为?虽然它有效,但它仍然存在与我发布的示例相同的问题。当您在第一个字段中输入电子邮件,然后在第二个字段中再次输入电子邮件时,它将按预期进行验证。但是,问题是,一旦验证,我们可以在不触发“验证电子邮件”字段验证程序的情况下更改第一封电子邮件。有解决办法吗?我刚刚在GitHub上讨论了这个问题。这正是我面临的问题。Kent编写的JSFIDLE似乎按预期工作。是的,这就是我编写所有这些的原因。您正在寻找的解决方案是
extras:{validateOnModelChange:true}
。这是一个正在工作的jsbin:--注意:它在v.7.1.2Alrighty上,因此,当错误被修复时,它也应该在当前版本上工作?它应该适用于“正常情况”,但不适用于repeatedSection,除非有人也修复了它。