0

listdata を JS オブジェクト リテラルに取得しようとしています。

出力は次のようになります。

dp.resources = [
                 { name: "Room A", id: "A", expanded: true, children:[
                         { name : "Room A.1", id : "A.1" },
                         { name : "Room A.2", id : "A.2" }
                         ] 
                 },
                 { name: "Room B", id: "B" },
                 { name: "Room C", id: "C" },
                 { name: "Room D", id: "D" },
                 { name: "Room E", id: "E" },
                 { name: "Room F", id: "F" },
                 { name: "Room G", id: "G" },
                 { name: "Room H", id: "H" },
                 { name: "Room I", id: "I" },
                 { name: "Room J", id: "J" },
                 { name: "Room K", id: "K" },
                ];

このjqueryコードを使用してメインルームをロードしています:

dp.resources = [];
serviceUrl = "../_vti_bin/listdata.svc/Rooms()?$orderby=Order asc";
$.getJSON(serviceUrl, function(results) {
  $.each(results.d.results, function(i, item) {
   dp.resources.push({name:item.Title, id:item.Id, expanded: true, dynamicChildren: true});
  }); // end each
 dp.update();

では、子 (B.1 など) を別のリストから取得し、dp.resources の正しい場所にプッシュするにはどうすればよいでしょうか? スクリプトの上記の $.each 部分にネストすることをお勧めします...

4

1 に答える 1

0

他の人が興味を持っているようには見えませんが、jquery ajax を使用して共有ポイント リストからデイパイロット データをロードするための最終的なコードを次に示します。

// load resources
dp.resources = [];
branchUrl = "../_vti_bin/listdata.svc/Branches()?$orderby=Order asc";
$.getJSON(branchUrl, function(results) {
  $.each(results.d.results, function(i, item) {
   dp.resources.push({name:item.Title, id:"b_" + item.Id, expanded: true, dynamicChildren: true, children:[]});

   // load children
   dp.onLoadNode = function(args) {
    args.async = true;
    resourceURL = "../_vti_bin/listdata.svc/Resources()?$filter=Titel+eq+'" + args.resource.name + "'";
     $.getJSON(resourceURL, function(results) {
      $.each(results.d.results, function(i, item) {
       args.resource.children.push({name:item.Name, id:"r_" + item.Id});
      }); // end each
     }).then(function(){
         args.loaded();  
        });
   }; //end onLoadNode


  }); // end each
}).then(function() {
 dp.update();
}); // end thens 
于 2013-11-04T15:47:33.833 に答える