我有一个对象数组,如下所示:
myCtrl.siteNameLabels = myCtrl.actual.map(function (value, index) {
return {
actualSite: {
actualSiteName : value,
actualSiteData: myCtrl.tableData[index]
},
pastSite: {
pastSiteName : myCtrl.pastSiteNameLabels[index] + "_past",
pastSiteData : myCtrl.tableDataPast[index]
}
}
})
有一对相同的网站(现在,过去),每个网站的名称都是相同的(过去有"过去"最后用于识别),以及要显示的数据在屏幕上(这是一个数值值数组)。
每个网站都有现有数据,但有些网站没有过去的数据。
我必须将所有这些数据放在表头中,如下所示:
Site1 | Site1_past | Site2 | Site3 | Site3_past | Site4
如果我只有现有网站,那么使用ng-repeat
放置数据非常容易。问题是我还有可选的过去网站,必须与他们现有的网站配对。
这是我为现有网站生成的代码:
<thead>
<tr>
<th ng-repeat="label in $ctrl.siteNameLabels">{{label.actual.actualSiteName}}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="rows in $ctrl.tableData[0] track by $index">
<td>{{$ctrl.dateLabels[$index]}}</td>
<td ng-repeat="label in $ctrl.actualSiteNameLabels">{{$ctrl.tableData[$index][$parent.$index]}}</td>
</tr>
</tbody>
它显示如下:
Site1 | Site2 | Site3 | Site4
任何想法如何让它像这样?
Site1 | Site1_past | Site2 | Site3 | Site3_past | Site4
答案 0 :(得分:0)
尝试使用此方法存储网站价值
site: {
actualSiteName : value,
actualSiteData: myCtrl.tableData[index]
pastSiteName : myCtrl.pastSiteNameLabels[index] + "_past",
pastSiteData : myCtrl.tableDataPast[index]
}
希望它不会影响其他功能...
答案 1 :(得分:0)
var labelList = [{ actualName: "Site1", pastName: "Site1_past" },
{ actualName: "Site2" },
{ actualName: "Site3", pastName: "Site3_past" },
{ actualName: "Site4" },
];
var flatList = [];
labelList.forEach(function(item) {
flatList.push(item.actualName);
if (item.pastName) {
flatList.push(item.pastName);
};
});
console.log(flatList);
&#13;