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

时间:2016-06-21 05:49:27

标签: angularjs

我有一个使用ng-repeat生成多个输入字段的表单。 我已经创建了一个自定义验证,它会检查所有字段都不应该有重复值。 因此,如果field1具有值ABC,并且如果用户在field2中键入ABC,则会显示错误。 但是,如果用户将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>

1 个答案:

答案 0 :(得分:0)

这可能不是最有效的,但一种方法可能是为表单中的每个字段赋予一个对应于字段和表单的id(即id =&#34; field1form(ng-repeat key)和id =&#34; field2form(ng-repeat key)。

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

这样您就可以在创建表单和字段时区分它们,然后让ID能够作为检查方法的参数。