对于像我这样的AngularJS新手来说,这是一项具有挑战性的任务,所以我想问一些帮助或帮助。所以我想实现的是通过树级别和树ID对数据进行分组。Angular JS根据级别渲染树型数据树
我对HTML当前代码:
<!DOCTYPE html>
<html>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>
<body>
<div ng-app="myApp" ng-controller="myCtrl">
<ul>
<li ng-repeat="item in list">
[[ item.code ]]
</li>
</ul>
</div>
</body>
</html>
我对JS当前代码:
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
$scope.list = [
{
"id": 1,
"code": "TANK",
"tree_id": 1,
"level": 0,
"parent": null
},
{
"id": 2,
"code": "OIL",
"tree_id": 1,
"level": 1,
"parent": 1
},
{
"id": 3,
"code": "CHEM",
"tree_id": 1,
"level": 1,
"parent": 1
},
{
"id": 6,
"code": "PROD",
"tree_id": 1,
"level": 2,
"parent": 3
},
{
"id": 4,
"code": "BULK",
"tree_id": 2,
"level": 0,
"parent": null
},
{
"id": 5,
"code": "LOG",
"tree_id": 2,
"level": 1,
"parent": 4
}
],
});
如果您检查$ scope.list,你可以找到tree_id,水平和父。所以我真正想要实现的是通过树ID对对象进行分组,然后级别0或顶级将成为一级,而级别1和级别将只是可折叠内容。请认为tree_id作为对象之间的分组,可以将级别视为其层次结构顺序,而继承层次结构根将取决于父树的整数值,这是树ID。另外请注意,这并不局限于一个分支,但多,灵活的和无限的分支
渲染应该是这个样子:
- TANK
- CHEM
- 油
- PROD
- BULK
- LOG
你可以改变'$ scope.list'的结构吗?或者你必须使用现有的结构吗? – S4beR
现有的结构是一样的,实际上它来自于API响应 –