Skip to content

Commit 2302c65

Browse files
Ben RubinBen Rubin
authored andcommitted
remove element form service so we can have more than 1 tree
1 parent 79d489d commit 2302c65

File tree

3 files changed

+22
-18
lines changed

3 files changed

+22
-18
lines changed

src/js/branch.js

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ var BRANCH_ARROW_TEMPLATE = angular.element('<div class="md-branch-icon-containe
2323

2424
/*@ngInject*/
2525
function branchDirective($parse, $document, $mdUtil, $filter, $$mdTree, $mdConstant) {
26+
var treeElement;
27+
2628
return {
2729
restrict: 'E',
2830
require: ['?^mdBranchTemplates'],
@@ -407,7 +409,7 @@ function branchDirective($parse, $document, $mdUtil, $filter, $$mdTree, $mdConst
407409
var arrow = $$mdTree.getArrow(branchElement);
408410
if (arrow && !$$mdTree.isTip(branchElement)) {
409411
// open branch by simulating click
410-
$$mdTree.getTreeElement().triggerHandler({
412+
getTreeElement(branchElement).triggerHandler({
411413
type: 'click',
412414
target: arrow
413415
});
@@ -425,7 +427,7 @@ function branchDirective($parse, $document, $mdUtil, $filter, $$mdTree, $mdConst
425427
var arrow = $$mdTree.getArrow(branchElement);
426428
if (arrow) {
427429
// close branch by simulating click
428-
$$mdTree.getTreeElement().triggerHandler({
430+
getTreeElement(branchElement).triggerHandler({
429431
type: 'click',
430432
target: arrow
431433
});
@@ -453,7 +455,7 @@ function branchDirective($parse, $document, $mdUtil, $filter, $$mdTree, $mdConst
453455
function toggleOpen(branchElement) {
454456
if ($$mdTree.canOpen(branchElement) && !$$mdTree.isTip(branchElement)) {
455457
// open branch by simulating click
456-
$$mdTree.getTreeElement().triggerHandler({
458+
getTreeElement(branchElement).triggerHandler({
457459
type: 'click',
458460
target: $$mdTree.getArrow(branchElement)
459461
});
@@ -468,13 +470,29 @@ function branchDirective($parse, $document, $mdUtil, $filter, $$mdTree, $mdConst
468470
el = $$mdTree.getCheckbox(branchElement);
469471
}
470472
if (el) {
471-
$$mdTree.getTreeElement().triggerHandler({
473+
getTreeElement(branchElement).triggerHandler({
472474
type: 'click',
473475
target: el
474476
});
475477
}
476478
}
477479

480+
481+
function getTreeElement(branchElement) {
482+
if (treeElement) { return treeElement; }
483+
treeElement = walkForTree(branchElement);
484+
return treeElement;
485+
}
486+
487+
function walkForTree(el) {
488+
var parent = el.parentNode;
489+
while (parent && parent !== document.body) {
490+
if (parent.nodeName === 'MD-TREE') { return angular.element(parent); }
491+
parent = parent.parentNode;
492+
}
493+
return null;
494+
}
495+
478496
};
479497
}
480498

src/js/service.js

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@ angular
44

55

66
function treeService($mdUtil, $animateCss) {
7-
var treeCtrl;
8-
var treeElement;
97
// track shift pressed
108
var shiftPressed = false;
119
document.addEventListener('keydown', function (e) {
@@ -16,13 +14,11 @@ function treeService($mdUtil, $animateCss) {
1614
});
1715

1816
return {
19-
init: init,
2017
open: open,
2118
close: close,
2219
canOpen: canOpen,
2320
filterOpen: filterOpen,
2421
filterClose: filterClose,
25-
getTreeCtrl: getTreeCtrl,
2622
getTreeElement: getTreeElement,
2723
getBranch: getBranch,
2824
getArrow: getArrow,
@@ -37,15 +33,6 @@ function treeService($mdUtil, $animateCss) {
3733
getCheckbox: getCheckbox
3834
};
3935

40-
function init(_treeCtrl, _treeElement) {
41-
treeCtrl = _treeCtrl;
42-
treeElement = _treeElement;
43-
}
44-
45-
function getTreeCtrl() {
46-
return treeCtrl;
47-
}
48-
4936
function getTreeElement() {
5037
return treeElement;
5138
}

src/js/tree.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ function treeDirective($mdTheming, $mdUtil) {
3838
vm.selected = {};
3939
vm.opened = {};
4040
vm.init = init;
41-
$$mdTree.init(vm, $element); //make tree accesable to branch, via service
4241

4342
// setup ngModel and make it available to controller
4443
function init(ngModel, binding) {

0 commit comments

Comments
 (0)