Angularjs 当一个字段发生更改时,如何重新验证使用ng repeat生成的表单中的所有字段

Angularjs 当一个字段发生更改时,如何重新验证使用ng repeat生成的表单中的所有字段,angularjs,Angularjs,我使用ng repeat生成了一个具有多个输入字段的表单。 我已经创建了一个自定义验证,它检查所有字段都不应该有重复的值。 所以,如果field1有值ABC,并且如果用户在field2中键入ABC,它将显示error。 但若用户将field1的值更改为XYZ,则错误仍然保留在field2上,因为它并没有重新验证 验证使用ng repeat生成的表单中所有字段的最佳方法是什么 下面是代码的样子 <div ng-form name="editConfigNameForm"> <in

我使用ng repeat生成了一个具有多个输入字段的表单。 我已经创建了一个自定义验证,它检查所有字段都不应该有重复的值。 所以,如果field1有值ABC,并且如果用户在field2中键入ABC,它将显示error。 但若用户将field1的值更改为XYZ,则错误仍然保留在field2上,因为它并没有重新验证

验证使用ng repeat生成的表单中所有字段的最佳方法是什么

下面是代码的样子

<div ng-form name="editConfigNameForm">
<input 
    ng-repeat='config in configs'
    type="text" 
    ng-model="config.newName" 
    name="configName"
/>
</div>

这可能不是最有效的方法,但一种方法是为表单中的每个字段提供一个与字段和表单相对应的id(即id=“field1form(ng repeat key)和id=“field2form(ng repeat key))

创建一个由ng change调用的方法,该方法将字段id作为参数,确定表单编号(ng repeat key)并检查相反的字段


这将允许您在创建表单和字段时区分它们,然后使id能够作为检查方法的参数使用。

scope.revalidateColumnNames=function(editConfigNameForm,length){for(var i=0;i使用validate时,您只需要表单名称(它将验证所有字段)。假设“editConfigNameForm”是您的表单名称,应该如下所示:
editConfigNameForm。$validate()
如果为真,这也可能触发提交检查。哪里的代码没有按预期工作?问题太广泛了,简单地问一下..“什么是最佳方式”抱歉。添加了代码。@charlietfl是一个自定义验证器。它与我提出的问题无关。问题是当其中一个字段发生更改时验证表单中的所有其他字段。我意识到……而整个问题都围绕着它不正常工作而展开。如果您需要帮助修复它,您需要发布代码。这很简单网站的工作方式更新了主代码。自定义验证器有很多依赖项。我还必须包括所有这些依赖项。