'use strict'; /* Directives */ angular.module('treeview', []). directive('treeview', ['$compile', 'treeviewData', function($compile, treeviewData) { return { restrict: 'A', link: function(scope, elm, attrs) { // show items for (var i=0; i< treeviewData.all['child'].length; i++) { var node = traverseTreeviewData( treeviewData.all['child'][i]); elm.append(node); } function traverseTreeviewData(node) { var text = node['text']; if (node['child']) { // not leaf node, keys: 'text', 'child' var element = angular.element('
'); var sign = angular.element('+'); var textElm = $compile( ''+ text + '' )(scope); element.append(sign); element.append(textElm); var childrenContainer = $compile('
')(scope); for (var i=0; i'); all.append(element); all.append(childrenContainer); return all; } else { // leaf node, keys: 'text' var element = $compile( '
' + text + '
' )(scope); return element; } } } }; }]);