2016-08-03 7 views
2

JsTreeを使用してファイルツリー(Webアプリケーション用)を構築しようとしています。jsTreeを埋め込むためにJavaScriptで配列を作成する

レベル1:dimension

レベル2:hierarchiedimensionの子)

レベル3:niveau, Ordre_niveau = 1hierarchieの子

私は異なるレベルを有します)

レベルn:niveau, Ordre_niveau = nniveau ordre (n-1)の子)

私はdimensionhierarchieを埋めることに成功したが、ordreの情報がniveauの情報と同じオブジェクトであるため、すべての私のniveauは同じレベルにあります。ここで

は私のコードです:

var jsTreeData = []; 
//"dimensions" 
for (var i = 0; i < dimension.length; i++) { 
    jsTreeData.push({ 
    'text': dimension[i].dimension_Nom_dimension, 
    'type': 'dimension', 
    'data': dimension[i], 
    'children': [] 
    }); 

    //"hiérarchies" 
    var x = -1; 
    for (var j = 0; j < hierarchie.length; j++) { 
    if (hierarchie[j].dimension_Dimension_id == jsTreeData[i].data.dimension_Dimension_id) { 
     jsTreeData[i].children.push({ 
     'text': hierarchie[j].hierarchie_Nom_hierarchie, 
     'type': 'hierarchie', 
     'data': hierarchie[j], 
     'children': [] 
     }); 
     x = x + 1; 
     //"niveaux"   
     for (var k = 0; k < niveau.length && x < (jsTreeData[i].children.length); k++) { 
     for (var l = 0; l < niveau.length && x < (jsTreeData[i].children.length); l++) { 

      if (niveau[k].hierarchie_Hierarchie_id == jsTreeData[i].children[x].data.hierarchie_Hierarchie_id && niveau[k].niveau_Niveau_id == niveau[l].niveau_Niveau_parent_id && niveau[k].niveau_Ordre_niveau == 1 && niveau[l].niveau_Ordre_niveau == 2) { 
      jsTreeData[i].children[x].children.push({ 
       'text': niveau[k].niveau_Nom_niveau, 
       'type': 'niveau', 
       'data': niveau[k], 
       'children': ({ 
       jsTreeData: ({ 
        'text': niveau[l].niveau_Nom_niveau, 
        'type': 'niveau', 
        'data': niveau[l] 
       }) 
       }) 
      }); 
      } 
     } 
     } 
    } 
    } 
} 

結果は、それがプロパティのようであるなどJstree表示すべてdimension、すべてのhierarchieだけniveau, Ordre_niveau = 1ないniveau, Ordre_niveau = 2

ということですJstreeのchildrenは動作しません。

+0

これは役に立ちますが、ノードをJsTreeに渡す方法は2つあります。 1つはあなたが使用している子供と一緒です。 otherは、このURL https://www.jstree.com/docs/json/の代替フォーマットです。 idとparentを自分で指定しなければならないので、動作する可能性があります。 – AbhilashK

+0

私はこのエラーが発生するたびに、 "JsTreeコードで" toString 'of undefined "プロパティを読み取ることができません:// 2)子(foreach)を入れます (i = 0、j = dat.length; i < j; i ++){\t \t \t \t \t \t \t m [dat [i] .parent.toString()]。children.push(dat [i] .id.toString()); // populate parent.children_d p.children_d.push(dat [i] .id.toString()); \t \t \t \t \t \t})理由を知っていますか? –

+0

私は問題が何かを見ました。 「未定義」の親を持つデータが1つしかなく、この例外のコードがない場合、JsTreeはエラーを送信します。 –

答えて

-2

私はあなたが質問を理解していませんが、あなたは最も簡単な修正する方法とデバッグを使用することができます。console.log('Some label', variable);あなたはあなたの場所のためのif ... elseまたはfor (i =0, ...)または他の問題には持っているすべての場所でそれを使用してください。エラーや間違いを見つけるのに役立ちます。

+0

ありがとうございます。私は知っています、これは非常に不明ですが、あなたのヒントが助けになるかもしれません。 –

関連する問題