1.6.1 : dijit.tree et json
Bonjour,
Le code suivant affiche un dijit.tree :
Code:
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
|
var rawdata = [
{
'label':'Titi',
'children':[{'label':'Titi1'}]
}
];
var store = new dojo.data.ItemFileReadStore(
{
data: {
label: 'label',
items: rawdata
}
}
);
var treeModel = new dijit.tree.ForestStoreModel({
rootLabel: "TitiRoot",
childrenAttrs: ["children"],
store: store
});
var treeControl = new dijit.Tree({
model: treeModel,
autoExpand:true
},
"treeOne");
conteneurPage.addChild(treeControl);
// Start the table container. This initializes it and places
// the child widgets in the correct place.
conteneurPage.startup();
conteneurPage.layout(); |
En faisant la modification suivante, le dijit.tree ne s'affiche plus. Du moins, seul le noeud root "TitiRoot" s'affiche.
Code:
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
|
//tab est un tableau contenant les données à afficher dans l'arbre.
//je le met au format json.
var rawdata = dojo.toJson(tab);
//D'ailleurs voici le jSon contenu dans rawdata :
/*
"
[
{
"label":"Titi",
"children":[{"label":"Titi1"}]
}
]
"
*/
//Comme dans toute chaine on a des guillemets au début et à la fin.
var store = new dojo.data.ItemFileReadStore(
{
data: {
label: 'label',
items: rawdata
}
}
);
var treeModel = new dijit.tree.ForestStoreModel({
rootLabel: "TitiRoot",
childrenAttrs: ["children"],
store: store
});
var treeControl = new dijit.Tree({
model: treeModel,
autoExpand:true
},
"treeOne");
conteneurPage.addChild(treeControl);
// Start the table container. This initializes it and places
// the child widgets in the correct place.
conteneurPage.startup();
conteneurPage.layout(); |
Je pense que le pb vient des guillemets contenue dans le json et qu'il faudrait avoir
Code:
1 2 3 4 5 6 7
|
[
{
"label":"Titi",
"children":[{"label":"Titi1"}]
}
] |
au lieu de
Code:
1 2 3 4 5 6 7 8 9
|
"
[
{
"label":"Titi",
"children":[{"label":"Titi1"}]
}
]
" |
Pour le vérifier, dans ma variable contenant le json (en l'occurence rawdata), j'aurais aimer remplacer les séquences et par et mais je ne sais pas comment faire ??? Je pense qu'il faut jouer avec les regex que je ne maitrise pas bien.
On est bien d'accord que je ne souhaite surtout pas enlever tous les guillemets : "Titi1" doit rester "Titi" par exemple. Donc seulement les guillemets de début et de fin (mais peut on le faire dans une chaine ???)
Merci d'avance.