我有以下几种形式的数据供用户几天内按小时提供:

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>


我已经使用很长时间了,我想知道这种事情是否可能,而不只是将数据重组到另一个数组中。

问题是:


为什么将ng-repeat嵌套的尝试无效?
我可以以其他方式嵌套ng-repeat吗?
我要这一切都错了吗?

最佳答案

如果您执行类似的操作,它应该可以工作

<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返回单个项目。

09-25 18:24
查看更多