forked from eu81273/angular.treeview
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathangular.treeview.min.js
More file actions
10 lines (9 loc) · 1.88 KB
/
angular.treeview.min.js
File metadata and controls
10 lines (9 loc) · 1.88 KB
1
2
3
4
5
6
7
8
9
10
/*
@license Angular Treeview version 0.1.6
ⓒ 2013 AHN JAE-HA http://github.com/eu81273/angular.treeview
License: MIT
*/
(function(angular){'use strict';angular.module('angularTreeview',[]).directive('treeModel',['$compile',function($compile){return{restrict:'A',link:function(scope,element,attrs){var treeId=attrs.treeId;var treeModel=attrs.treeModel;var nodeId=attrs.nodeId||'id';var nodeLabel=attrs.nodeLabel||'label';var nodeChildren=attrs.nodeChildren||'children';var nodeFilter=attrs.nodeFilter||'';var filter=null;if(nodeFilter!==''){filter=' | filter: '+nodeFilter;}
var template='<ul>'+'<li data-ng-repeat="node in '+treeModel+filter+'">'+'<i class="collapsed" data-ng-show="node.'+nodeChildren+'.length && node.collapsed" data-ng-click="'+treeId+'.selectNodeHead(node)"></i>'+'<i class="expanded" data-ng-show="node.'+nodeChildren+'.length && !node.collapsed" data-ng-click="'+treeId+'.selectNodeHead(node)"></i>'+'<i class="normal" data-ng-hide="node.'+nodeChildren+'.length"></i> '+'<span data-ng-class="node.selected" data-ng-click="'+treeId+'.selectNodeLabel(node)">{{node.'+nodeLabel+'}}</span>'+'<div data-ng-hide="node.collapsed" data-tree-id="'+treeId+'" data-tree-model="node.'+nodeChildren+'" data-node-id='+nodeId+' data-node-label='+nodeLabel+' data-node-children='+nodeChildren+' data-node-filter='+nodeFilter+'></div>'+'</li>'+'</ul>';if(treeId&&treeModel){if(attrs.angularTreeview){scope[treeId]=scope[treeId]||{};scope[treeId].selectNodeHead=scope[treeId].selectNodeHead||function(selectedNode){selectedNode.collapsed=!selectedNode.collapsed;};scope[treeId].selectNodeLabel=scope[treeId].selectNodeLabel||function(selectedNode){if(scope[treeId].currentNode&&scope[treeId].currentNode.selected){scope[treeId].currentNode.selected=undefined;}
selectedNode.selected='selected';scope[treeId].currentNode=selectedNode;};}
element.html('').append($compile(template)(scope));}}};}]);})(angular);