0

这个问题与我的另一个问题有关;angularjs-multi-level-tables-inside-another-if-clicked。(你可以在那里看到“完整的”JSON。)

为什么我不能有像下面这样的 ng-repeat?

<tbody>
<tr data-ng-repeat="dayData in storeDataModel.storedata[0].data">
  <td>{{dayData.date}}</td>
  <td>{{dayData.cost}}</td>
  <td>{{dayData.sales}}</td>
  <td>{{dayData.revenue}}</td>
  <td>{{dayData.employees}}</td>
  <td>{{dayData.employeeHoursSum}}</td>
</tr>
</tbody>

Angular 在数组“dayData”中为这个特定的“存储”找到对象的数量(storedata[0] 是第一个存储),但由于某种原因,它创建了 n+1 行而不是 n 行,并且根本没有任何数据的行。

我也尝试了很多组合,试图让它发挥作用......:

  • storeDataModel.storedata.data - 根本不返回任何行
  • storeDataModel.storedata.$index.data - 根本不返回任何行
  • storeDataModel.storedata.$index+1.data - 返回错误
  • storeDataModel.storedata.$first.data - 根本不返回任何行

我正在尝试做的事情是否可能,或者我是否需要编写指令来获取特定的商店 dayData 信息并为该特定商店放入临时模型,然后在临时模型上执行 ng-repeat?

(另外,当我试图将此特定表格作为“假手风琴”的内容时,即单击父表格中的一行以展开/折叠并显示此特定表格时(请参阅我的链接问题) - 是否有任何非-如果我将 ng-clicked 或 own 指令与您提出的解决方案一起包含,兼容性?)

4

1 回答 1

2

在 ng-repeat 中,您必须遍历一个数组。在您的 JSON 中,“数据”是一个对象:

{
  "data": {
     ...
     "dayData" : [
       ...
     ]
   }
 }

因此,您必须遍历 "dayData" :

<tbody>
<tr data-ng-repeat="dayData in storeDataModel.storedata[0].data.dayData">
  <td>{{dayData.date}}</td>
  <td>{{dayData.cost}}</td>
  <td>{{dayData.sales}}</td>
  <td>{{dayData.revenue}}</td>
  <td>{{dayData.employees}}</td>
  <td>{{dayData.employeeHoursSum}}</td>
</tr>
</tbody>

你可以在这个小提琴上看到它

于 2013-07-15T18:06:55.410 回答