У меня есть таблица, которая создается с помощью ng-repeat. Я хочу добавить валидацию к каждому элементу таблицы. Проблема в том, что каждая ячейка ввода имеет то же имя, что и ячейка выше и ниже нее. Я попытался использовать значение {{$index}}
для обозначения входов, но, несмотря на то, что строковые литералы в HTML выглядят корректно, он теперь работает.
Вот мой код на данный момент:
<tr ng-repeat="r in model.BSM ">
<td>
<input ng-model="r.QTY" class="span1" name="QTY{{$index}}" ng-pattern="/^[\d]*\.?[\d]*$/" required/>
<span class="alert-error" ng-show="form.QTY{{$index}}.$error.pattern"><strong>Requires a number.</strong></span>
<span class="alert-error" ng-show="form.QTY{{$index}}.$error.required"><strong>*Required</strong></span>
</td>
</tr>
Я попытался удалить {{}}
из индекса, но это тоже не работает. На данный момент свойство проверки ввода корректно работает, но сообщение об ошибке не отображается.
У кого-нибудь есть предложения?
Изменить: В дополнение к замечательным ответам ниже, вот статья в блоге, которая более подробно описывает эту проблему: http://www.thebhwgroup.com/blog/2014/08/angularjs-html-form-design-part-2/