javascript - 从 ng-repeat 访问第一项

标签 javascript angularjs angularjs-ng-repeat

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

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

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

最佳答案

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

<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$ 访问外部作用域的 $first(或 $index)变量父 变量。我创建了一个 fork of your Plunker这说明了如何做到这一点。

关于javascript - 从 ng-repeat 访问第一项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29500436/

相关文章:

javascript - 背包表示

javascript - jQuery Compass - 在光标位置旋转的箭头

javascript - x秒后如何设置变量?

javascript - ng-click 在 Angular Directive(指令)中 - 从根范围传递函数

javascript - 将对象传递到新页面

javascript - 将不同的 JavaScript 对象合并到一个对象中

html - CSS 行未出现在 Safari 上,在 Chrome 上工作正常

javascript - Angular.js : set default selected from ID

javascript - ng-repeat inside ng-repeat with td for each item - AngularJS

javascript - 尝试使用 jasmine-pit 进行测试时开 Jest 超时