私はJITを使用してspacetreeを作成していますが、サーバーから返されるデータは適切な形式ではないため、正しい形式の文字列を作成するのが最も簡単だとわかりました。それをevalで解析します(これはうまくいきます)。問題は今、スペースツリーに子ノードを追加するための適切な形式ではないJSONの別の文字列を使用する必要があることになり、私は現在何をしているのか分かりません。ここに私のコードは次のとおりです。関数内の変数javascript内の関数ですか?
function grabdata(empid, fname, lname){
var json = '';
jQuery.getJSON('../../Mobile_ReportingChain.cfm?Empid='+empid, function(data) {
console.log(data);
for(var i=data.DATA.length-1; i>=0; i--){
json = json + 'id: "' + data.DATA[i][3] + '",name: "' + data.DATA[i][0] + ' ' + data.DATA[i][1] + '",data: {},children: [{';
}
json = json + 'id: "' + empid + '",name: "' + fname + ' ' + lname + '",data: {},children: [';
alert("JSON 1: " + json);
jQuery.getJSON('../../Mobile_Subordinate.cfm?Empid='+empid, function(data2) {
console.log(data2);
for(var i=0; i<data2.DATA.length; i++){
json = json + '{id: "' + data2.DATA[i][4] + '",name: "' + data2.DATA[i][0] + ' ' + data2.DATA[i][1] + '",data: {},children: []},';
}
alert("JSON 2: " + json);
});
json = json + ']';
for(var i=data.DATA.length; i>0; i--){
json = json + '}]';
}
alert("JSON 3: " + json);
});
}
は、ここで私は、アラートからなってんだよ、と何私の目標は次のとおりです。
JSON 1: id: "000-25-9687",name: "NAME1 LNAME1 ",data: {},children: [{id: "000-91-3619",name: "FNAME2 LNAME2 ",data: {},children: [{id: "000-01-2302",name: "FNAME3 LNAME3 ",data: {},children: [{id: "000-14-7189",name: "FNAME4 LNAME4 ",data: {},children: [{id: "000-62-7276",name: "FNAME5 LNAME5",data: {},children: [
JSON 2: id: "000-25-9687",name: "NAME1 LNAME1 ",data: {},children: [{id: "000-91-3619",name: "FNAME2 LNAME2 ",data: {},children: [{id: "000-01-2302",name: "FNAME3 LNAME3 ",data: {},children: [{id: "000-14-7189",name: "FNAME4 LNAME4 ",data: {},children: [{id: "000-62-7276",name: "FNAME5 LNAME5",data: {},children: []}]}]}]}]{id: "000-21-6506 ",name: "CHILD1 CHILDLNAME1 ",data: {},children: []},{id: "000-17-7989 ",name: "CHILD2 CHILDLNAME2 ",data: {},children: []},{id: "000-23-6712 ",name: "CHILD3 CHILDLNAME3 ",data: {},children: []},
JSON 3: id: "000-25-9687",name: "NAME1 LNAME1 ",data: {},children: [{id: "000-91-3619",name: "FNAME2 LNAME2 ",data: {},children: [{id: "000-01-2302",name: "FNAME3 LNAME3 ",data: {},children: [{id: "000-14-7189",name: "FNAME4 LNAME4 ",data: {},children: [{id: "000-62-7276",name: "FNAME5 LNAME5",data: {},children: []}]}]}]}]
JSON 4: id: "000-25-9687",name: "NAME1 LNAME1 ",data: {},children: [{id: "000-91-3619",name: "FNAME2 LNAME2 ",data: {},children: [{id: "000-01-2302",name: "FNAME3 LNAME3 ",data: {},children: [{id: "000-14-7189",name: "FNAME4 LNAME4 ",data: {},children: [{id: "000-62-7276",name: "FNAME5 LNAME5",data: {},children: [{id: "000-21-6506 ",name: "CHILD1 CHILDLNAME1 ",data: {},children: []},{id: "000-17-7989 ",name: "CHILD2 CHILDLNAME2 ",data: {},children: []},{id: "000-23-6712 ",name: "CHILD3 CHILDLNAME3 ",data: {},children: []},]}]}]}]}]
明らかにそれは過去に移動すると、それは時間を持って前にJSON3アラートを作るものがやっていますJSON2アラートを取得してビルドします。どのように私はそれを停止し、そのgetJSON呼び出しが完了するのを待って、成功関数が終了する前に終了するのですか?一般的なルールとして
私が必要としていたことを完全に遂行したので、必要なときに$ .when()*を調べます。 :) – Rob