设想
假设我是一家拥有许多商店的大公司的所有者。根据我在公司中的角色(在组织中的位置),我将拥有不同的数据访问权限。会有不同的模块,对于这个特定的问题,有一个可以访问的用户可以了解日常成本和销售情况。(如果这是否合法......不要在意,这只是一个例子。)
因此,用户通过 REST API 从后端(Java 应用程序)获取所有数据,其中包含用户有权访问的所有商店的所有数据。然后,用户应该能够通过不同的过滤器组合过滤数据。与我的问题最相关的是按天计算的日期间隔。
会有一些图表显示不同级别的数据,下面会有一个表格区域,我想要多级表格,因此我的问题。
到目前为止完成
- 我首先创建了在手风琴组级别存储的手风琴,然后在手风琴正文中的表中创建了下一级数据。(目前只有硬编码数据。)这里的问题是相应的标题是一个字符串,经过一些讨论,我们认为这不是一个好的解决方案,因为标题将包含表格中的部分数据单独的列。因此,当折叠时很难“列”标题数据以水平匹配不同的“存储”(在手风琴标题之间)(当然,当一个或多个手风琴展开时更加混乱)。
- 我用 table 和 ng-repeat 替换了手风琴。已经成功地用来自具象 API 的数据和 JSON 数据填充了第一个表级别,并让 i18next 为标题工作。
JSON
{
"metadata":{
"storesInTotal":"25",
"storesInRepresentation":"2"
},
"storedata":[
{
"store" : {
"storeId" : "1000",
"storeName" : "Store 1",
"storePhone" : "+46 31 1234567",
"storeAddress": "Some street 1",
"storeCity" : "Gothenburg"
},
"data" : {
"startDate" : "2013-07-01",
"endDate" : "2013-07-02",
"costTotal" : "100000",
"salesTotal" : "150000",
"revenueTotal" : "50000",
"averageEmployees" : "3.5",
"averageEmployeesHours" : "26.5",
"dayData" : [
{
"date" : "2013-07-01",
"cost" : "25000",
"sales" : "15000",
"revenue" : "4000",
"employees" : "3",
"employeesHoursSum" : "24"
},
{
"date" : "2013-07-02",
"cost" : "25000",
"sales" : "16000",
"revenue" : "5000",
"employees" : "4",
"employeesHoursSum" : "29"
}
]
}
},
{
"store" : {
"storeId" : "2000",
"storeName" : "Store 2",
"storePhone" : "+46 8 9876543",
"storeAddress": "Big street 100",
"storeCity" : "Stockholm"
},
"data" : {
"startDate" : "2013-07-01",
"endDate" : "2013-07-02",
"costTotal" : "170000",
"salesTotal" : "250000",
"revenueTotal" : "80000",
"averageEmployees" : "4.5",
"averageEmployeesHours" : "35",
"dayData" : [
{
"date" : "2013-07-01",
"cost" : "85000",
"sales" : "120000",
"revenue" : "35000",
"employees" : "5",
"employeesHoursSum" : "38"
},
{
"date" : "2013-07-02",
"cost" : "85000",
"sales" : "130000",
"revenue" : "45000",
"employees" : "4",
"employeesHoursSum" : "32"
}
]
}
}
],
"_links":{
"self":{
"href":"/storedata/between/2013-07-01/2013-07-02"
}
}
}
可视化示例 - JSFiddle
检查结果框中的值,左上角。尝试单击商店 ID 为 2000 的示例行,然后单击 3000,然后再次单击 3000 以查看值如何变化。 我的 JSFiddle 的当前更新
想要的功能
单击一行时(如 JSFiddle 中所示),我想要一个指令或触发的东西,以获取单击的商店的基础数据(dayData)并显示日期间隔中的所有天。即扩展行,并在单击的行下包括一个新表,该表也应该使用 ng-repeat 来获取与现有数据类似的所有数据,但内联。
问题
所以我已经有了从点击的行中获取 $index 以及特定数据的功能。我还需要什么样的指令或任何其他解决方案才能获取“单击行时的数据”并显示在单击行下的表格中?
我不希望它一直在 DOM 中,因为每个商店和许多商店可能有很多 dayData。(稍后将使用分页,但即便如此,并非一直在 DOM 中。)这意味着我必须能够在单击一行时添加,以及从先前单击的相同或另一个 REMOVE 中单击时。