ng-class中的$ index用于表单验证

时间:2017-03-01 01:00:54

标签: angularjs

我想验证一个角形式输入,并给它一个类,如果不是$有效,问题是,它在一个ng-repeat循环一个int数组内,输入名称是基于$ index :

<li ng-repeat="item in selectedItem.data.ax_ch">
  <div ng-class="{'has-error':!form.ax_$index.$valid}">
     <input type="text" id="ax_{{$index}}" name="ax_{{$index}}" ng-model="item" required=""/>
  </div>
</li>

所有东西都在输出中得到$ index,但ng-class:

<li ng-repeat="item in selectedItem.data.ax_ch">
  <div ng-class="{'has-error':!form.ax_$index.$valid}">
     <input type="text" id="ax_0" name="ax_0" ng-model="item" required=""/>
  </div>
</li>

我的预期是:

<li ng-repeat="item in selectedItem.data.ax_ch">
  <div ng-class="{'has-error':!form.ax_0.$valid}">
     <input type="text" id="ax_0" name="ax_0" ng-model="item" required=""/>
  </div>
</li>

我搜索过,人们有类似的问题,但到目前为止还没有解决过。是否有任何角度 - 超级英雄 - 高手 - 高级 - 谁可以帮助我:)?

1 个答案:

答案 0 :(得分:3)

因为您正在动态构建form上的属性/键,所以您在普通Javascript中执行相同的操作:使用square["bracket"]表示法。

将您的标记更改为:

<li ng-repeat="item in selectedItem.data.ax_ch">
  <div ng-class="{'has-error':!form['ax_' + $index].$valid}">
     <input type="text" id="ax_{{$index}}" name="ax_{{$index}}" ng-model="item" required=""/>
  </div>
</li>