Ik heb een klasse Project gemaakt, die gegevens over het project bevat, een paar functies voor het renderen van de bijbehorende GUI delen, en een lijst met subprojecten. Die subprojecten worden weer via de zelfde renderfunctie gerenderd, oftewel recursie. Nu heb ik het probleem dat alleen de laatste laag van de laatste tak getoond wordt.
Dat komt waarschijnlijk omdat projectControl gedeeld wordt tussen de verschillende instanties van Project die ik gemaakt heb, en dus niet bij die ene instantie. Ik weet niet hoe ik dit probleem met waarschijnlijk de scope opgelost kan krijgen, met this.projectControl werkte het ook niet.
Het uiteindelijke resultaat moet een geneste UL LI lijst zijn met projecten en subprojecten van de geselecteerde klanten.
Dat komt waarschijnlijk omdat projectControl gedeeld wordt tussen de verschillende instanties van Project die ik gemaakt heb, en dus niet bij die ene instantie. Ik weet niet hoe ik dit probleem met waarschijnlijk de scope opgelost kan krijgen, met this.projectControl werkte het ook niet.
Het uiteindelijke resultaat moet een geneste UL LI lijst zijn met projecten en subprojecten van de geselecteerde klanten.
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
| function Project(id, name, customer) { var id = id; var customer = customer; var name = name; // children var subProjects = Array(); // GUI var projectControl = null; /* snip */ this.getControl = function() { if (this.projectControl == null) { // creat the dom node projectControl = document.createElement('LI'); projectControl.style.width = '150'; projectControl.style.backgroundColor = customer.getColor(); innerSpan = document.createElement('SPAN'); innerSpan.appendChild(document.createTextNode(name)); projectControl.appendChild(innerSpan); projectControl.onmousedown = doDrag.bind(this); // render the projects if (subProjects.length > 0) { subList = document.createElement('UL'); for (var t = 0; t < subProjects.length; t++) { subList.appendChild(subProjects[t].getControl()); } projectControl.appendChild(subList); } } return projectControl; } /*snip*/ } |
iOS developer