2011-01-11 22 views
2

私は、JavaScriptのコーディング、特にjQueryの使用をかなり新しくしています。私はjsTreeを使用して、JSONを使用してポピュレートしようとしています。今私は私の質問が関連する質問に答えられたと信じていますが、私がやっていることに対して具体的な答えを見つけることはできません。私もjsTreeのドキュメントを参照しましたが、それでもわかりません。以下JSONからjsTree子をロードする

は、私は、これは基本的にJSON用jsTreeドキュメント内のコードのコピーである

buildTree : function(name, url, nodeRef) { 

    $("#"+name).jstree({ 
     "json_data" : { 
    "ajax" : { 
    "url" : url + nodeRef, 
    "data" : function(n) { 
     return { id : n.attr ? n.attr("id") : 0 }; 
    } 
    } 
    }, 

    "plugins" : [ "themes", "json_data" ] 
    }); 
    } 

をしようとしているコードです。ここで起こっているのは、そのコンテンツのツリーのルートフォルダにデータを格納できるということです。以下は、私が得ているJSONの応答です。

[ 
{ 
"attr":{"id":"a3e6a1f0-ec50-4215-a6df-2065eb09115e","rel":"file"}, 
"data":"File 1","state":"" 
}, 
{ 
"attr":{"id":"b38e4a72-875b-4d69-95d3-5437f7e65575","rel":"folder"}, 
"data":"Folder 1","state":"closed" 
} 
] 

ただし、フォルダのノードをクリックすると、同じ値を持つ同じJSONリクエストによって読み込まれます。

私は犯人が

"url" : url + nodeRef, 

である知っているが、私は、私は初期nodeRef値を置き換える、私は応答から取得していますIDを渡すつもり方法に失われています。私はコールバックを使用しようとしましたが、何も起こっていません。

ご協力いただきありがとうございます。

答えて

0

コードの次の部分は、すでに "id"クエリーストリングパラメータをajax URLに追加しています。この関数は、要求されるURLのクエリ文字列パラメータに使用されるキーと値のペアを持つオブジェクトを返します。

"data" : function(n) {  return { id : n.attr ? n.attr("id") : 0 };  } 

あなたのコードにnodeRef変数の目的がわかりません。それはルートノードを見つけることですか?もしそうなら、そのために別のクエリーストリング・パラメータを使用できませんか?

jsTreeによって構築されたURLを確認するためにfiddlerを使用します。おそらく、それは現在、2つのIDクエリ文字列パラメータを持つURLを作成しており、常にnodeRef変数によって提供されるものを使用していますか?

関連する問題