仅在脏时才验证ng-repeat内的一个元素

时间:2015-11-03 10:37:46

标签: angularjs validation ng-repeat

我有一个简单ng-required验证的表单。这适用于简单的输入字段,但我不知道如何处理ng-repeat中的数组。我希望ng-repeat中的输入只有在失去焦点一次后才会变为无效。

以下是问题的一个示例:

https://jsbin.com/kugobiwoxo/1/edit?html,js,output

这有效:ng-required="myform.MyName.$touched"

这不是:ng-required="myform.contact[{{$index}}].$touched"

在第二种情况下是否可以使用其他表达式。

1 个答案:

答案 0 :(得分:2)

Angularjs不支持索引输入名称或ID。在ng-repeat中,您需要使用ng-form属性。

我对包含ng-repeat的div所做的更改如下

<div ng-repeat='contact in model.Contacts' ng-form="innerform">
      <label for='name'>Contact {{$index}}:</label>
      <input type='text' ng-model='contact.Name'
             id='name' name='contact'
             ng-required="innerform.contact.$touched" />

      <button ng-click='remove($event, $index)'>-</button>
    </div>

正如您在JSBin

中看到的那样,它正在按预期工作