我试图通过此JSON对象使用angularjs填充树组件:
var myData=[{"agence":"CTM","secteur":"Safi","serie":"CZC1448YZN"},{"agence":"CTM","secteur":"Safi","serie":"2UA13817KT"},{"agence":"CTM","secteur":"Rabat","serie":"CZC1349G1B"},{"agence":"CTM","secteur":"Rabat","serie":" 2UA0490SVR"},{"agence":"CTM","secteur":"Agdal","serie":" G3M4NOJ"},{"agence":"CTM","secteur":"Essaouira","serie":" CZC1221B85"},{"agence":"Gare Routiere Municipale","secteur":"Essaouira","serie":" CZC145YL3"}] ;
继承了javascript代码:
var treedata_avm = [];
for(var i=0; i < myData.length; i++) {
// alert('roro '+myData[i].secteur);
treedata_avm.push({
label: myData[i].secteur,
children: [{
label: myData.agence,
children: [myData[i].serie]
}]
});
}
$scope.my_data = treedata_avm;
HTML:
<abn-tree tree-data="my_data " tree-control="my_tree" on-select="my_tree_handler(branch)" expand-level="2" initial-selection="Granny Smith" icon-leaf="ti-file" icon-expand="ti-plus" icon-collapse="ti-minus"></abn-tree>
它工作正常,但我没有得到我想要的预期bevaviour ..我想要的是通过像这样的业余和年龄得到数据组:
-Safi
-CTM
CZC1448YZN
2UA13817KT
-Rabat
-CTM
CZC1349G1B
2UA0490SVR
-Agdal
G3M4NOJ
-Essaouira
-CTM
CZC1221B85
-Gare Routiere Municipale
CZC145YL3
答案 0 :(得分:0)
您可以使用groupBy()根据需要初始化结构:
myData = _.groupBy(this.myData, 'secteur');
但是你必须为每个对象添加适当的额外内容(agence,serie等)。
或者你可以使用_.reduce()将两者结合起来(这对你来说可能更好)。请记住,reduce()也是Plain Ol&#39;中阵列的一种方法。 JavaScript因此您不会被迫使用lodash:
_.reduce(this.myData, function(acc, value, key) {
(result[key] || result[key] = value).push(acc);
return acc;
}, acc);