我有以下几种形式的数据供用户几天内按小时提供:
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
返回单个项目。