从ng-repeat访问第一项

时间:2015-04-07 20:12:33

标签: javascript angularjs angularjs-ng-repeat

我有一个通过ng-repeat Plunker

创建的禁用输入字段列表
<ul>
  <li ng-repeat="name in names">
   <input type="text" disabled value="{{name.item}}"/>
  </li>
</ul>

如何禁用第一个输入字段? 提前致谢

3 个答案:

答案 0 :(得分:5)

您可以使用ng-disabled并查看ng-repeat指令的$first变量:

<ul>
  <li ng-repeat="name in names">
    <input type="text" ng-disabled="!$first" value="{{name.item}}"/>
  </li>
</ul>

您可以同样检查$middle$last$even$odd。如果使用$index,则可以检查任意行索引。

由于ng-repeat创建了一个独立的范围,在嵌套的ng-repeat的情况下,如果只想启用第一个父项中的第一个项,相关的代码将如下所示: p>

<div ng-repeat="item in items">
  <ul>
    <li ng-repeat="name in names">
      <input type="text" ng-disabled="!$parent.$first || !$first" value="{{name.item}}"/>
    </li>
  </ul>
</div>

您可以通过内部$first $index变量访问外部范围ng-repeat(或$parent)变量。我创建了一个fork of your Plunker来说明如何做到这一点。

答案 1 :(得分:3)

您正在寻找$index。因此,只需检查当前$index是否不是第一个“0”:

<ul>
  <li ng-repeat="name in names">
   <input type="text" ng-disabled="$index != 0" value="{{name.item}}"/>
  </li>
</ul>

答案 2 :(得分:3)

这就是你要找的东西!

<ul>
  <li ng-repeat="name in names">
    <input type="text" ng-disabled="!$first" value="{{name.item}}"/>
  </li>
</ul>

您可以看到documentation for ng-repeat更多特殊变量,例如$first