【问题标题】:Iterating collpasible bootstrap data table in angular以角度迭代可折叠引导数据表
【发布时间】:2018-06-23 21:39:04
【问题描述】:

我正在尝试使用以下 JSON 将我的静态引导数据表(以增量方式列出不同月份收获的水果总数的计数)变为动态数据表

JSON

{
  "fruit": [
    {
      "fruitName": "All",
      "season": [
        {
          "seasonName": "All",
          "yearValues": [
            {
              "year": 2017,
              "value": 200
            },
            {
              "year": 2018,
              "value": 200
            }
          ]
        },
        {
          "seasonName": "Sept",
          "yearValues": [
            {
              "year": 2017,
              "value": 100
            },
            {
              "year": 2018,
              "value": 100
            }
          ]
        },
        {
          "seasonName": "Oct",
          "yearValues": [
            {
              "year": 2017,
              "value": 100
            },
            {
              "year": 2018,
              "value": 100
            }
          ]
        }
      ]
    },
    {
      "fruitName": "Orange",
      "season": [
        {
          "seasonName": "All",
          "yearValues": [
            {
              "year": 2017,
              "value": 100
            },
            {
              "year": 2018,
              "value": 100
            }
          ]
        },
        {
          "seasonName": "Sept",
          "yearValues": [
            {
              "year": 2017,
              "value": 50
            },
            {
              "year": 2018,
              "value": 50
            }
          ]
        },
        {
          "seasonName": "Oct",
          "yearValues": [
            {
              "year": 2017,
              "value": 50
            },
            {
              "year": 2018,
              "value": 50
            }
          ]
        }
      ]
    },
    {
      "fruitName": "Grapes",
      "season": [
        {
          "seasonName": "All",
          "yearValues": [
            {
              "year": 2017,
              "value": 100
            },
            {
              "year": 2018,
              "value": 100
            }
          ]
        },
        {
          "seasonName": "Sept",
          "yearValues": [
            {
              "year": 2017,
              "value": 50
            },
            {
              "year": 2018,
              "value": 50
            }
          ]
        },
        {
          "seasonName": "Oct",
          "yearValues": [
            {
              "year": 2017,
              "value": 50
            },
            {
              "year": 2018,
              "value": 50
            }
          ]
        }
      ]
    }
  ]
}

HTML

 <tr data-toggle="collapse" data-target=".order11" ng-repeat="item in result.fruit">
                <td>{{item.fruitName}}</td>
                <td>All</td>
                <td>200 </td>
                <td>200</td>
                <td>400</td>
            </tr>
            <tr class="collapse order11">
                <td></td>
                <td>Sept</td>
                <td>100</td>
                <td>100 </td>
                <td>200</td>
            </tr>
            <tr class="collapse order11">
                <td></td>
                <td>Oct</td>
                <td>100</td>
                <td>100 </td>
                <td>200</td>
            </tr> 

数据表的功能是,当您单击一行时,它会展开以显示子元素,但我无法使用多个 ng-repeat 迭代我的表,因为我使用单独的 &lt;tr&gt; 来实现折叠功能。有没有人遇到过同样的问题,请告诉我..

请找到工作小提琴here

【问题讨论】:

    标签: javascript jquery angularjs json twitter-bootstrap


    【解决方案1】:

    您需要做一些事情。

    1. 您需要index 可折叠部分,以便它们在它们所在的行中是唯一的。这样,您就可以遍历中继器并为每个水果设置一个不同的部分。
    2. 然后在可折叠部分重复每个“季节”。您需要对年份数据进行透视,以便跨列动态显示年度数据
    3. 然后您需要更改数据以折叠显示在行中的“汇总”总值,否则仅显示第一条记录,假设第一条记录始终为“全部”类型.
    4. 您还需要强制每个部分的每个列宽相同(或至少一致),否则如果没有适当的样式,它可能看起来不整洁。

    这是一个fiddle,其中包含一些更改。它使用 div 而不是 table,因为现在更容易创建。您可以调整样式以使其符合您的要求。

    【讨论】:

    • 您能否在小提琴中进行编辑,因为我不知道如何在个人中重复 tr
    • fiddle 添加到上面的答案中
    • 感谢您的解决方案。我看到主要行是重复的。无论如何只显示一个吗?
    • 这就是我在列表中#3 的意思。您可以在 JSON 中放置一个属性,例如 isTotal,而忽略中继器中的那些。
    • 我添加了一个过滤器来消除第一行,假设它总是被称为“全部”并更新了小提琴,所以它现在只显示非总计行
    猜你喜欢
    • 2020-03-12
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-08
    • 1970-01-01
    • 2014-05-22
    相关资源
    最近更新 更多