首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Angular ng-在动态数字键不起作用时重复

Angular ng-在动态数字键不起作用时重复
EN

Stack Overflow用户
提问于 2016-09-21 17:59:45
回答 3查看 230关注 0票数 3

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

使用下面的代码片段

代码语言:javascript
运行
复制
<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>

下面是我想要的输出

代码语言:javascript
运行
复制
     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

在上面的循环中需要一些帮助。我没有得到上面提到的预期结果。

EN

回答 3

Stack Overflow用户

发布于 2016-09-21 18:06:53

您可以有三个ng-repeat,一个用于tbody,然后分别用于tr & td,但是对于较大的集合,这种方法会影响性能。

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

标记

代码语言:javascript
运行
复制
<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>
票数 2
EN

Stack Overflow用户

发布于 2016-09-21 18:16:02

您在sessionLength数组中有重复的值,因此需要使用track by $index来避免出现“不允许在中继器中重复”的错误。这应该行得通。

代码语言:javascript
运行
复制
       <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+'] track by $index" ng-if="sessionLength['5+']">
                    {{v}}
                </td>
                <td ng-repeat="(k,v) in sessionLength['3-5'] track by $index" ng-if="sessionLength['3-5']">
                    {{v}}
                </td>
                <td ng-repeat="(k,v) in sessionLength['1-3'] track by $index" ng-if="sessionLength['1-3']">
                    {{v}}
                </td>
                <td ng-repeat="(k,v) in sessionLength['0.5'] track by $index" ng-if="sessionLength['0.5']">
                    {{v}}
                </td>
                <td ng-repeat="(k,v) in sessionLength['<30'] track by $index" ng-if="sessionLength['<30']">
                    {{v}}
                </td>
            </tr>
票数 1
EN

Stack Overflow用户

发布于 2016-09-21 20:20:08

下面的@Pankaj Parkar是我在结尾处使用的。运行得很好。

代码语言:javascript
运行
复制
<tbody ng-repeat="(sessionKey, session) in compAppsData">
                                        <tr ng-repeat="(key, value) in session track by $index">
                                          <td>{{key}}</td>
                                          <td ng-repeat="v in value track by $index" style="text-align:center"> {{ v}}</td>
                                        </tr>
                                    </tbody>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39613340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档