2016-10-31 4 views
0

私はブートストラップツリービューを使用して階層メンバーデータを設定しています。 https://github.com/jonmiles/bootstrap-treeviewブートストラップツリービューに階層データを設定するAjaxコールバック関数

ツリービューを移入するためにJSONデータのサンプル:

var json = '[' + 
       '{' + 
        '"text": "Parent 1",' + 
        '"nodes": [' + 
         '{' + 
          '"text": "Child 1",' + 
          '"nodes": [' + 
           '{' + 
            '"text": "Grandchild 1"' + 
           '},' + 
           '{' + 
            '"text": "Grandchild 2"' + 
           '}' + 
          ']' + 
         '},' + 
         '{' + 
          '"text": "Child 2"' + 
         '}' + 
        ']' + 
       '},' + 
       '{' + 
        '"text": "Parent 2"' + 
       '},' + 
       '{' + 
        '"text": "Parent 3"' + 
       '},' + 
       '{' + 
        '"text": "Parent 4"' + 
       '},' + 
       '{' + 
        '"text": "Parent 5"' + 
       '}' + 
      ']'; 

私はそれがMEMBERIDを渡すことによって、ダイレクトダウンラインを取得するAjaxの機能を、持っています。

function getTree2(mid) { 
     $.ajax({ 
      type: "POST", 
      url: "../DataServices/ws_member.asmx/GetDirectDownlineByMemberID", 
      data: "{'memberID':'" + mid + "'}", 
      contentType: "application/json; charset=utf-8", 
      success: function (response) { 
       var str = ''; 
       var result = JSON.parse(response.d) 
       for (var i = 0; i < result.length; i++) { 
        str += '"text": "' + result[i].Name + '",' + 
          '"nodes": [' + 
         '{'; 

        str += getTree2(result[i].ID); 

        str += '}' + 
        ']'; 
       } 
       str += '}' + 
        ']'; 

       return str; 
      }, 
      dataType: "json" 
     }); 
    } 

ただし、次の行は文字列を返すことはできません。

文字列を返すためにajaxコールバックでgetTree2関数をループするにはどうすればよいですか?

答えて

0

あなたが返される文字列を取り戻すしたい場合は、あなたがライン#23に続いて

function getTree2(mid, callback) 

スルーコールバックを渡す必要がありますので、Ajax呼び出しは非同期スレッドで処理されるように:

return callback(str); 

新しい文字列を追加するには

getTree2(result[i].ID, function(newStr) { 
    str += newStr; 
}); 
関連する問題