从 ng-repeat 访问第一项

Access the first item from ng-repeat

我有一个通过 ng-repeat 创建的禁用输入字段列表 Plunker

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

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

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

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

您可以使用 ng-disabled and check the 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 的情况下,如果您只想启用第一个父项中的第一项,则相关代码如下所示:

<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>

通过内部 ng-repeat$parent 变量访问外部作用域的 $first(或 $index)变量。我创建了一个 fork of your Plunker 来展示如何做到这一点。

这就是您要找的!

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

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