6

私はこの小さな問題に頭を悩ませているようには見えません:

<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がロードされるため、コントローラーがリストを書き込む前に、それにアクセスして「アクティブ」要素を追加する方法がわかりません。

4

1 に答える 1

11

のイテレータインデックスを設定し、ng-repeat="parent in parents"それを使用して2つの機能で遊ぶことがshowKids(index)できます。子供リストをクリックするたびにどの親リストをアクティブにするかをマークし、isShowing(index)どの子供サブリストを表示するかを知るためにng-show

私はここで私の考えに従ってあなたのコードを書き直しましたhttp://jsfiddle.net/odiseo/twSFK/7/

于 2013-03-20T16:10:12.530 に答える