Bonsoir,

Je travaille sur une application dojo mobile. Je génère des ScrollableView à partir d'un fichier JSON . Lorsque je génère la première page, cela me crée le code suivant :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<div id="accueil" class="mblView mblScrollableView" dojotype="dojox.mobile.ScrollableView" selected="true" style="visibility: visible; overflow: hidden; top: 0px; height: 398px;" widgetid="accueil">
<div class="mblScrollableViewContainer" style="position: absolute; width: 100%; padding-top: 0px;">
<h1 id="dojox_mobile_Heading_0" class="mblHeading" dojotype="dojox.mobile.Heading" back="" moveto="" style="" widgetid="dojox_mobile_Heading_0">Titre</h1>
<h2 dojotype=""></h2>
<ul id="dojox_mobile_RoundRectList_0" class="mblRoundRectList" dojotype="dojox.mobile.RoundRectList" style="" widgetid="dojox_mobile_RoundRectList_0">
</div>
</div>
Mais ensuite, lorsque je veux accéder à une autre page, je la génère à partir du fichier JSON avant de l'afficher. Le problème, c'est que cela ne genère pas automatiquement les classes de style associé comme "mblView mblScrollableView". De plus, il me manque le div <div class="mblScrollableViewContainer" ...

Cela me donne juste :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
<div id="infos" dojotype="dojox.mobile.ScrollableView" selected="false" style="visibility: visible; position: relative; top: 0px; left: 0px;">
<h1 id="dojox_mobile_Heading_1" class="mblHeading" dojotype="dojox.mobile.Heading" back="Accueil" moveto="accueil" style="" widgetid="dojox_mobile_Heading_1">
<h2 dojotype=""></h2>
<ul id="dojox_mobile_RoundRectList_1" class="mblRoundRectList" dojotype="dojox.mobile.RoundRectList" style="" widgetid="dojox_mobile_RoundRectList_1">
</div>
J'ai aussi remarquer que le bouton back me permettant de revenir en arrière ne fonctionne pas.

Je ne comprend pas pourquoi je n'obtiens pas la même chose. j'ai pourtant parser la nouvelle vue

code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
function getAction(child, id){
	dojo.forEach(child, function(page){
	console.log(page);
	dojo.forEach(page.components, function(component){
	dojo.forEach(component.items, function(item){
	if (id == item.id){
		console.log(item);
		moveTo=item.moveTo;
		return moveTo;
	}
	});
	});
	this.getAction(page.children, id);
	});
	console.log(moveTo);
	return moveTo;
   }
 
function createView(child, id_view){
 
	dojo.forEach(child, function(page){
	if (page.id==id_view){
	      Side.Mobile.Page.create(page.id, page.dojoType, page.selected, page.components);
	}
	this.createView(page.children, id_view);
	});
}
 
function actionTransition(li){
	dojo.xhrGet({
		url : 'param2.json',
		handleAs : "json",
		load : function(param) {
		var application= param.application;
		var id_view=getAction(application.tree, li.id, moveTo);
		createView(application.tree, id_view);
		var view = dojo.byId(id_view);
		dojox.mobile.parser.parse(view);
		var listitem=dijit.byNode(li);
		listitem.transitionTo(id_view);
		},
		error : function(err) {
			console.debug("Error : ", err);
		}
	        });
}
 
	dojo.ready(function(){
		var prog = dojox.mobile.ProgressIndicator.getInstance();
		dojo.body().appendChild(prog.domNode);
		prog.start();
 
 
		dojo.xhrGet({
			url : 'param2.json',
			handleAs : "json",
			load : function(param) {
				var application=param.application;
				dojo.query("title")[0].text=application.name;
				dojo.query("link")[1].href=application.icon;
				dojo.query("link")[2].href=application.icon;
				var footer=application.footer;
				dojo.forEach(application.tree, function(page){
					Side.Mobile.Page.create(page.id, page.dojoType, page.selected, page.components);
				});
				//Side.Mobile.Footer.create(footer.id, footer.dojoType, footer.tabButtons);
				dojox.mobile.parser.parse();
				prog.stop();
				},
				error : function(err) {
					console.debug("Error : ", err);
			        }
		});
 
	});