2016-03-19 14 views
1

私はJsTree Ajax遅延ロード機能を使用しており、私はJsTree-gridを使用しているデータを表示しています。しかし、私は2番目の列にJsTreeグリッドを使用してデータを表示することに問題があります。私はJsTreeアヤックス遅延ロード機能を使用してPHPを通過しています以下のJSONデータをしました:JavaScriptでJsTreeグリッドにデータが表示されない

[  
    { 
     "id": ​157749, 
     "parent": "Sheet1.worksheet1webs44lx8GbsHu9igMc2vM_qWJqhePuo257PKZm_6Uo", 
     "text": "Script 1: Login", 
     "data": { 
      "status": "Fail" 
     } 
    }, 
    { 
     "id": ​104511, 
     "parent": "Sheet1.worksheet1webs44lx8GbsHu9igMc2vM_qWJqhePuo257PKZm_6Uo", 
     "text": "skip", 
     "data": { 
      "status": "Pass" 
     } 
    } 
] 

私は次のコードをしました:

$('#jstree').jstree({ 
    plugins: ['grid'], 
     'grid': { 
      'columns': [ 
       { 
        'width': 50, 
        'header': 'Nodes' 
       }, 
       { 
        'width': 30, 
        'header': 'Status', 
        'value': function (node) { 
         return (node.status); 
        } 
       } 
      ] 
     }, 
     'core' : { 
      'data' : { 
       "url" : function (node) { 
        return node.id === '#' ? 'node' : 'tree/' + node.id; 
       }, 
       'data' : function (node) { 
        return { 'id' : file.id, 'title' : file.title }; 
       }, 
       "dataType" : "json" 
      } 
     } 
    }); 

注:私はここにノードをログコンソール:'value': function (node) { console.log(node); }私は、コンソール上で以下の結果得た:私は01を表示したいと思い

Object { status: "Fail" } 
Object { status: "Pass" } 

または2番目のJsTreeグリッド列のに失敗します。しかし、JsTreeグリッドはデータを表示していないので、コンソール上でエラーも表示されません。どうか、誰かが私が達成したいことについて私を助けることができますか?

答えて

1

私はここで二つの問題を参照してください。

  1. "parent": "Sheet1.worksheet1webs44lx8GbsHu9igMc2vM_qWJqhePuo257PKZm_6Uo"を。あなたのjsonはこれらのノードのための親を持っていません
  2. ここでは機能は必要ありません - 'value': function (node) { return (node.status); }、単に'value': 'status'を使用してください。

これら2つの問題を修正した後、デモ-を確認してください。

+0

オリジナルのJSONデータに「親」:「Sheet1.worksheet1webs44lx8GbsHu9igMc2vM_qWJqhePuo257PKZm_6Uo」JSONがあります。私は単純化のためにここから削除しました。あなたは絶対に正しいです。関数を使用せずに、JsTreeグリッドはうまく動作し、私はすでに昨日それを理解しました。しかし、クロージャーではうまくいかない理由が分かりますか? –

関連する問題