<!DOCTYPE html>
<html ng-app="plunker">
<head>
<script src="//cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.16/angular.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="//rawgit.com/iVantage/angular-ivh-treeview/master/dist/ivh-treeview.css">
<link rel="stylesheet" href="//rawgit.com/iVantage/angular-ivh-treeview/master/dist/ivh-treeview-theme-basic.css">
<meta charset="utf-8">
<title>Angular JS</title>
</head>
<body >
<div class="container">
<div ng-controller="DemoCtrl as demo">
<div ivh-treeview="demo.treeData"
ivh-treeview-expand-to-depth="-1"></div>
<div class="row">
<div class="col-md-6">
<h4>All Selected Things</h4>
<ul>
<li ng-repeat="item in demo.allSelected">
<span ng-repeat="parent in item.parents | reverse" style=" color:#aaa">
{{parent.label}}→
</span>
{{item.node.label}} ({{item.node.value}})
</li>
</ul>
<p ng-hide="demo.allSelected.length"><em>Nothing selected yet</em></p>
</div>
<div class="col-md-6">
<h4>Top Selected Things</h4>
<ul>
<li ng-repeat="item in demo.topSelected">
<span ng-repeat="parent in item.parents | reverse" style=" color:#aaa">
{{parent.label}}→
</span>
{{item.node.label}}
</li>
</ul>
<p ng-hide="demo.topSelected.length"><em>Nothing selected yet</em></p>
</div>
</div>
</div>
</div>
<script src="//rawgit.com/iVantage/angular-ivh-treeview/master/dist/ivh-treeview.min.js"></script>
<script src="script.js"></script>
</body>
</html>
console.clear();
var app = angular.module('plunker', ['ivh.treeview']);
app.config(function(ivhTreeviewOptionsProvider) {
ivhTreeviewOptionsProvider.set({
defaultSelectedState: false,
validate: true
});
});
app.filter('reverse', function () {
return function (items) {
return items.slice().reverse();
};
});
app.controller('DemoCtrl', function($scope, ivhTreeviewBfs, ivhTreeviewMgr) {
var self = this;
var treeData = self.treeData = [{
label: 'Lender',value:'1',
children: [
{ label: 'Create',value:'2',selected:false, children: []},
{ label: 'Edit',value:'3' , selected:true, children: []},
{ label: 'View' ,value:'4',selected:true, children: []},
{ label: 'List View' ,value:'5'},
{ label: 'Delete',value:'6' }
]
},
{
label: 'User Management', value:'7',
children: [
{ label: 'Create',value:'8'},
{ label: 'Edit',value:'9' },
{ label: 'View' ,value:'10'},
{ label: 'List View' ,value:'11'},
{ label: 'Delete',value:'12', children:[
{ label: 'Delete All' ,value:'13'},
{ label: 'Delete One' ,value:'14'}
]
}
]
}];
//IF YOU NEED TO LOAD DATAS INTO TREE FROM JSON FILE THIS IS WORKING PERFECT (I'm sorting my json by IdService from other input field)
//$scope.update = function () {
// $http.post('/Home/TreeSection', data = { IdService: $scope.new.Reservation.IdService }).success(function (data) {
// self.treeData = data;
// treeData = data;
// });
// };
var topSelected = self.topSelected = [];
var allSelected = self.allSelected = [];
self.gatherAllSelected = function () {
ivhTreeviewBfs(treeData, function (node, parents) {
if (node.selected) {
allSelected.push({
node: node,
parents: parents
});
}
});
};
self.gatherTopSelected = function () {
ivhTreeviewBfs(treeData, function (node, parents) {
if (node.selected) {
topSelected.push({
node: node,
parents: parents
});
return false;
}
});
};
$scope.$watch(function () {
return treeData;
}, function () {
self.allSelected.length = 0;
self.topSelected.length = 0;
self.gatherAllSelected();
self.gatherTopSelected();
}, true);
});
/* Styles go here */