从ng-repeat访问第一项

Rai*_*han 1 javascript angularjs angularjs-ng-repeat

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

<ul>
  <li ng-repeat="name in names">
   <input type="text" disabled value="{{name.item}}"/>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*ang 5

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

<ul>
  <li ng-repeat="name in names">
    <input type="text" ng-disabled="!$first" value="{{name.item}}"/>
  </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

你可以同样检查$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>
Run Code Online (Sandbox Code Playgroud)

通过内部变量访问外部作用域$first(或$index)变量ng-repeat的位置$parent.我创建了一个Plunker的分支,展示了如何做到这一点.