"AngularJs Recursive Tree"
Bootstrap 3.3.0 Snippet by woolf07

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>
<!------ Include the above in your HEAD tag ---------->
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.3.14/angular.min.js"></script>
<div class="container" ng-app="myApp" ng-controller="myCtrl">
<h1>Angular Recursive Tree</h1>
<h3>Basic and Simple Tree without "css styling"</h3>
<p>It is a example based on web references. | <strong>Required Level: Angularjs basic / intermedio</strong></p>
<div class="alert alert-danger">
<strong>If you don't see the tree, please: <button onClick="location.reload();">Reload</button></strong>
</div>
<!-- Logical TREE start here-->
<script type="text/ng-template" id="tree_item.html">
<div>
<button ng-click="toggleChildren(data)">
<span ng-bind="data.name"></span>
<span class="icon-plus" ng-class="data.iconDisplay"></span>
</button>
</div>
<div id="expanded-data" ng-if="data.childrenVisible">
<div id="nested-rowchild">
<div ng-repeat="data in data.nodes" ng-include="'tree_item.html'"></div>
</div>
</div>
</script>
<!-- recursive template tree -->
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
3
4
5
6
.inner-template {
padding:10px;
}
#expanded-data {
margin-left:30px;
}
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope, $http) {
//dummy data
$scope.treeData = [{"name":"Parent Node 0",
"nodes":[{
"name":"Node-1",
"value" : "Value of Node 1",
"nodes":[{
"name":"Node-1-1",
"nodes":[]
},{
"name":"Node-1-2",
"nodes":[]
}]
},{
"name":"Node-2",
"value" : "Value of Node 2",
"nodes":[{
"name":"Node-2-1",
"nodes":[]
},{
"name":"Node-2-2",
"nodes":[]
}]
},{
"name":"Node-3",
"value" : "Value of Node 3",
"nodes":[{
"name":"Node-3-1",
"nodes":[{
"name":"Node-3-1-1",
"nodes":[]
},{
"name":"Node-3-1-2",
"nodes":[]
}]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Related: See More


Questions / Comments: