ng-show表示ng-repeat中的特定元素

时间:2013-03-20 15:29:06

标签: javascript indexing angularjs

我似乎无法理解这个小问题:

<ul ng-repeat="parent in parents">
  <li>Mother: <i>{{parent.mother}}</i></li>
  <li>Father: <i>{{parent.father}}</i></li>
  <a href="#" ng-click="showKids()">Show Kids</a>
  <ul ng-repeat="kid in parent.kids" ng-show="active">
    <li>{{kid.name}}</li>
  </ul>
</ul>

http://jsfiddle.net/twSFK/5/

当我点击“显示孩子”时,我只想展示我点击的父母的孩子,而不是另一个。所以我需要某种索引,我在ng-show中使用的模型只针对特定元素。

由于$ scope.parents来自后端服务器并且使用ng-init加载,我不知道如何在控制器写入列表之前访问它以添加“活动”元素。

1 个答案:

答案 0 :(得分:11)

您可以将迭代器索引设置为ng-repeat="parent in parents",并使用它来使用两个函数:showKids(index)将标记在您单击子项列表时,哪个父列表应该处于活动状态,{{1为了知道您应该使用isShowing(index)

显示哪些子列表

我根据我在http://jsfiddle.net/odiseo/twSFK/7/

的想法重写了您的代码