Skip to content

Commit aa3b6f2

Browse files
author
Matt Evans
committed
optimised the tree transclude directive
1 parent a49378a commit aa3b6f2

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

angular-tree-control.js

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -295,13 +295,22 @@
295295
return {
296296
link: function(scope, element, attrs, controller) {
297297
if (!scope.options.isLeaf(scope.node)) {
298-
angular.forEach(scope.expandedNodesMap, function (node, id) {
299-
if (scope.options.equality(node, scope.node)) {
300-
scope.expandedNodesMap[scope.$id] = scope.node;
301-
scope.expandedNodesMap['x'+id] = undefined;
298+
var exchangeNodesInMap = function (node, id) {
299+
scope.expandedNodesMap[scope.$id] = scope.node;
300+
scope.expandedNodesMap["x"+id] = undefined;
301+
};
302+
303+
for(var key in scope.expandedNodesMap) {
304+
if (scope.expandedNodesMap.hasOwnProperty(key)) {
305+
var node = scope.expandedNodesMap[key];
306+
if (scope.options.equality(node, scope.node)) {
307+
exchangeNodesInMap(node, key);
308+
break;
309+
}
302310
}
303-
});
304-
}
311+
}
312+
}
313+
305314
if (!scope.options.multiSelection && scope.options.equality(scope.node, scope.selectedNode)) {
306315
scope.selectedNode = scope.node;
307316
} else if (scope.options.multiSelection) {

0 commit comments

Comments
 (0)