【发布时间】:2017-03-22 16:34:27
【问题描述】:
我有一个 JSON 对象,其中包含多个客户,每个客户我有多个月份,并在该月的特定日期范围内付款。
我正在尝试遍历此客户列表以显示每个客户的表格,并在此表格中显示该月的付款。棘手的部分是我需要强调付款与上一时期不同的情况。我的问题是我设法比较了同一个月的付款,但是我没有设法比较当月第一期的付款与上个月最后一期的付款。
这是我的 JSON(由旧系统返回):
{
"customers":[
{
"name":"John",
"months":{
"1":{
"details":[
{
"startDate":1483225200000,
"endDate":1483830000000,
"payment":250
},
{
"startDate":1483916400000,
"endDate":1485817200000,
"payment":350
}
]
},
"2":{
"details":[
{
"startDate":1485903600000,
"endDate":1487026800000,
"payment":350
},
{
"startDate":1487113200000,
"endDate":1488236400000,
"payment":350
}
]
},
"3":{
"details":[
{
"startDate":1488322800000,
"endDate":1490911200000,
"payment":250
}
]
},
"4":{
"details":[
{
"startDate":1490997600000,
"endDate":1491688800000,
"payment":275
},
{
"startDate":1491775200000,
"endDate":1493503200000,
"payment":275
}
]
}
}
},
{
"name":"Bob",
"months":{
"1":{
"details":[
{
"startDate":1483225200000,
"endDate":1483830000000,
"payment":250
},
{
"startDate":1483916400000,
"endDate":1485817200000,
"payment":350
}
]
},
"2":{
"details":[
{
"startDate":1485903600000,
"endDate":1487026800000,
"payment":350
},
{
"startDate":1487113200000,
"endDate":1488236400000,
"payment":350
}
]
},
"3":{
"details":[
{
"startDate":1488322800000,
"endDate":1490911200000,
"payment":250
}
]
},
"4":{
"details":[
{
"startDate":1490997600000,
"endDate":1491688800000,
"payment":275
},
{
"startDate":1491775200000,
"endDate":1493503200000,
"payment":275
}
]
}
}
},
{
"name":"Jane",
"months":{
"1":{
"details":[
{
"startDate":1483225200000,
"endDate":1483830000000,
"payment":250
},
{
"startDate":1483916400000,
"endDate":1485817200000,
"payment":350
}
]
},
"2":{
"details":[
{
"startDate":1485903600000,
"endDate":1487026800000,
"payment":350
},
{
"startDate":1487113200000,
"endDate":1488236400000,
"payment":350
}
]
},
"3":{
"details":[
{
"startDate":1488322800000,
"endDate":1490911200000,
"payment":250
}
]
},
"4":{
"details":[
{
"startDate":1490997600000,
"endDate":1491688800000,
"payment":275
},
{
"startDate":1491775200000,
"endDate":1493503200000,
"payment":275
}
]
}
}
}
]
}
这是我的 HTML,我在其中尝试使用 ng-repeat 进行循环,并在付款与上一次付款不同时尝试应用“highlight”类:
<table ng-repeat="customer in customersList">
<tbody ng-repeat="month in customer.months">
<tr ng-repeat="detail in customer.details track by $index">
<td data-ng-class="{'highlight' : month.details[$index-1].payment != month.details[$index].payment && $index > 0}">{{::detail.payment}} {{month.details[$index-1].payment != month.details[$index].payment && $index > 0}}</td>
<td data-ng-class="{'highlight' : month.details[$index-1].payment != month.details[$index].payment && $index > 0}">{{::detail.payment | currency}} {{$parent.customers.months[$index].details[$index-1].payment}}</td>
</tr>
</tbody>
</table>
我尝试使用 $parent 尝试访问上个月并能够将上个月的最后一笔付款与新月份的第一笔付款进行比较,但是失败了。谁能告诉我我做错了什么以及这是否可能?
【问题讨论】:
标签: javascript angularjs json angularjs-ng-repeat