Javascript 使用ngRepeat的复杂嵌套行表
我有一个像这样的对象:Javascript 使用ngRepeat的复杂嵌套行表,javascript,angularjs,Javascript,Angularjs,我有一个像这样的对象: { "10": {}, "12": { "20": { "value": 1, "id": 1, }, "100": { "value": 12, "id": 1, } }, "14": { "100": { "value": 14,
{
"10": {},
"12": {
"20": {
"value": 1,
"id": 1,
},
"100": {
"value": 12,
"id": 1,
}
},
"14": {
"100": {
"value": 14,
"id": 2,
}
},
"16": {},
"18": {},
"20": {
"100": {
"value": 23,
"id": 1,
},
"150": {
"value": 56,
"id": 3,
}
},
"22": {},
"24": {},
"26": {
"50": {
...
我想基于此对象创建一个如下所示的表:
{
"10": {},
"12": {
"20": {
"value": 1,
"id": 1,
},
"100": {
"value": 12,
"id": 1,
}
},
"14": {
"100": {
"value": 14,
"id": 2,
}
},
"16": {},
"18": {},
"20": {
"100": {
"value": 23,
"id": 1,
},
"150": {
"value": 56,
"id": 3,
}
},
"22": {},
"24": {},
"26": {
"50": {
...
但是,我不知道如何通过使用正确的重复组合来创建此表。我目前正在尝试:
<table>
<thead>
<tr>
<th>type</th>
<th>module</th>
<th>value</th>
<th>id</th>
</tr>
</thead>
<tbody>
<tr ng-repeat-start="(row1, value1) in TestData">
<td rowspan="{{value1.length}}">{{row1}}</td>
<td ng-repeat="(label2, value2) in value1">{{label2}}</td>
</tr>
</tbody>
</table>
类型
模块
价值
身份证件
{{row1}}
{{label2}}
乍一看,您可以通过插入一个
(更多信息请参见此处:)
var myAppModule=angular.module('myApp',[]).controller('MyController',MyController);
函数MyController(){
// https://stackoverflow.com/questions/1345939/how-do-i-count-a-javascript-objects-attributes
this.objectCount=函数(obj){
返回Object.keys(obj.length);
}
此参数。数据={
"10": {},
"12": {
"20": {
“价值”:1,
“id”:1,
},
"100": {
“价值”:12,
“id”:1,
},
"200": {
“价值”:120,
“id”:10,
}
},
"14": {
"100": {
“价值”:14,
“id”:2,
}
},
"16": {},
"18": {},
"20": {
"100": {
“价值”:23,
“id”:1,
},
"150": {
“价值”:56,
“id”:3,
}
},
"22": {},
"24": {}
};
}
表格,
th,
运输署{
边框:1px纯黑;
}
桌子{
边界塌陷:塌陷;
}
类型
模块
价值
身份证件
{{row1}}
{{row1}}
{{row2}}
{{value2.value}
{{value2.id}
Hi Cyril,感谢您的输入。实际上,我需要表格大致与我发布的一样,带有嵌套行。我可以在合理的范围内随意更改数据,但仍然无法实现我想要的。因此,这只是重复的12和20,这是问题所在?不完全是,这就是我使用ngRepeat的原因。每个原始对象,例如对象12,最多可以有6种模式,在得到它之前我无法知道。我已经更新了代码,12现在有3种模式,并且打印得很好