AngularJS在表中嵌套ng-repeats

时间:2014-02-14 13:42:15

标签: javascript html5 angularjs

我为用户提供了大量数据'几小时的可用性,格式为:

availData = { "date1":arrayOfUsers, "date2":arrayOfUsers, ... }

arrayOfUsers= [ userArray, userArray, ... ]

userArray= [ "username", "h0", "h1", "h2", ... "h23" ]

我有arrayOfUsers的格式,所以我可以根据他们的" h0" ..." h23"值。 这一切都适用于一个视图,但我现在想要使用相同的数据并创建一个包含以下内容的表,用于一个选定的"用户名":

date1  h0  h1  h2 ... h23
date2  h0  h1  h2 ... h23
...

到目前为止,我可以做到这一点:

<!-- rows of avail data... -->
<tr ng-repeat="(aDay,aUsers) in allAvailData track by $index">
 <td >{{aDay}}</td>
 <td ng-repeat="aUser in aUsers" ng-show="aUser[0]=='YR005'" >
   <span ng-repeat="hour in aUser track by $index" ng-show="!$first">{{hour}}
   </span>
 </td>
</tr>

提供2列表格行:"date" "h0h1h2h3h4"

但我真正想要的是单独的条目...... 不起作用

<!-- rows of avail data... -->
<tr ng-repeat="(aDay,aUsers) in allAvailData track by $index">
 <td >{{aDay}}</td>
 <span ng-repeat="aUser in aUsers" ng-show="aUser[0]=='YR005'" >
    <td ng-repeat="hour in aUser track by $index" ng-show="!$first">{{hour}}</td>
 </span>
</tr>

我没有长时间使用角度,我想知道这种事情是否可行,而不仅仅是将数据重组为另一个阵列。

问题是:

  1. 为什么嵌套ng-repeat的尝试不起作用?
  2. 我可以用另一种方式嵌套ng-repeat吗?
  3. 我接近这一切都错了吗?

1 个答案:

答案 0 :(得分:2)

如果您执行类似

的操作,它应该可以正常工作
<tr ng-repeat="(aDay,aUsers) in allAvailData track by $index">
  <td >{{aDay}}</td>
  <td ng-repeat="hour in getSelectedUser() track by $index" ng-show="!$first">{{hour}}</td>
</tr>

实施getSelectedUser方法,根据您的过滤器逻辑从arrayofusers返回单个项目。