angularjs - 动态数字键上的 Angular ng-repeat 不起作用

标签 angularjs

我正在尝试循环以下数据 [{"5+":[2,1,3]},{"3-5":[0,1,0]},{"1-3":[1,0,3]},{"0.5":[0,0,0]},{"<30":[0,0,0]}]

使用下面的代码段

<tr ng-repeat='sessionLength in [{"5+":[2,1,3]},{"3-5":[0,1,0]},{"1-3":[1,0,3]},{"0.5":[0,0,0]},{"<30":[0,0,0]}]'>
                                          <td ng-repeat="(key, value) in sessionLength">
                                              {{key}}
                                          </td>
                                          <td ng-repeat="(k,v) in sessionLength['5+']" ng-if="sessionLength['5+']">
                                            {{v}}
                                          </td>
                                          <td ng-repeat="(k,v) in sessionLength['3-5']" ng-if="sessionLength['3-5']">
                                            {{v}}
                                          </td>
                                          <td ng-repeat="(k,v) in sessionLength['1-3']" ng-if="sessionLength['1-3']">
                                            {{v}}
                                          </td>
                                          <td ng-repeat="(k,v) in sessionLength['0.5']" ng-if="sessionLength['5']">
                                            {{v}}
                                          </td>
                                          <td ng-repeat="(k,v) in sessionLength['<30']" ng-if="sessionLength['<30']">
                                            {{v}}
                                          </td>
                                        </tr>

下面是我想要的输出

     App1 App2 App3
5+  : 2    1    3
3-5 : 0    1    0 
1-3 : 1    0    3
0.5 : 0    0    0 
<30 : 0    0    0

需要有关上述循环的一些帮助。我没有得到上述预期结果。

最佳答案

您可以使用三个 ng-repeat,其中一个用于 tbody,然后分别用于 tr 和 td,但对于较大的集合,此方法会对性能产生影响。

在这种情况下,您应该创建自定义过滤器,它将返回格式化数据,从而减少ng-repeat

标记

<thead>
   <th></th>
   <th>App1</th>
   <th>App2</th>
   <th>App3</th>
</thead>
<tbody ng-repeat="(sessionKey, session) in sessionLength">
    <tr ng-repeat="(key, value) in session track by $index">
      <td>{{key}} :</td>
      <td ng-repeat="v in value"> {{ v}}</td>
    </tr>
</tbody>

关于angularjs - 动态数字键上的 Angular ng-repeat 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39613340/

相关文章:

angularjs - 将 IDTech UniPay 读卡器与 Cordova/PhoneGap 结合使用

javascript - Angular Material 1.1.1 布局填充问题与指令

javascript - Angular Controller 和服务 - 成功和错误回调

javascript - 从指令更改 Controller $scope

AngularJS : multiple resolves in ui. 路由器

javascript - 如何在 angularjs 中打印 Hello World

java - 服务器端更改客户端发送的日期/时间

javascript - 将数据从指令传递回 Controller

javascript - 如何使用express js 3.X和Angular js将图像流式传输到亚马逊s3?

json - 如何使用 ng-repeat 显示来自 json 的数据