2017-08-04 26 views
0

我有以下的JSON樹結構:Fancytree不垮已擴展密鑰設定爲節點假

[ 
    { 
     "expanded":"false", 
     "key":"_23", 
     "title":"Politics", 
     "data":{ 
      "id":"23", 
      "name_en":"Politics", 
      "description_en":"", 
      "seo_title_en":"", 
      "seo_description_en":"", 
      "name_sr":"Politika", 
      "description_sr":"", 
      "seo_title_sr":"", 
      "seo_description_sr":"", 
      "slug_en":"politics", 
      "slug_sr":"politika" 
     }, 
     "children":[ 
      { 
       "key":"_24", 
       "title":"Domestic politics", 
       "data":{ 
        "id":"24", 
        "name_en":"Domestic politics", 
        "description_en":"", 
        "seo_title_en":"", 
        "seo_description_en":"", 
        "name_sr":"Doma\u0107a politika", 
        "description_sr":"", 
        "seo_title_sr":"", 
        "seo_description_sr":"", 
        "slug_en":"domestic-politics", 
        "slug_sr":"domaca-politika" 
       } 
      } 
     ] 
    }, 
    { 
     "expanded":"false", 
     "key":"_21", 
     "title":"Sport", 
     "data":{ 
      "id":"21", 
      "name_en":"Sport", 
      "description_en":"", 
      "seo_title_en":"", 
      "seo_description_en":"", 
      "name_sr":"Sport", 
      "description_sr":"", 
      "seo_title_sr":"", 
      "seo_description_sr":"", 
      "slug_en":"sport", 
      "slug_sr":"sport" 
     }, 
     "children":[ 
      { 
       "key":"_22", 
       "title":"Football", 
       "data":{ 
        "id":"22", 
        "name_en":"Football", 
        "description_en":"", 
        "seo_title_en":"", 
        "seo_description_en":"", 
        "name_sr":"Fudbla", 
        "description_sr":"", 
        "seo_title_sr":"", 
        "seo_description_sr":"", 
        "slug_en":"football", 
        "slug_sr":"fudbla" 
       } 
      } 
     ] 
    } 
] 

正如你看到的,在第一級的兩個節點已擴大設置爲false。但那些沒有顯示在樹上倒塌。

我從AJAX請求加載樹。這裏是init代碼:

$("#news-categories-table").fancytree({ 
    icon: false, 
    checkbox: false, 
    titlesTabbable: true, 
    source: { 
     url: SITE_URL + "news_categories/get_tree", 
     cache: false 
    }, 
    extensions: ["table", "dnd"], 
    table: { 
     nodeColumnIdx: 1 // render node expander, icon, and title to this column (default: #0) 
    }, 
    dnd: { 
     autoExpandMS: 400, 
     draggable: { // modify default jQuery draggable options 
      zIndex: 1000, 
      scroll: false, 
      containment: "parent", 
      revert: "invalid" 
     }, 
     preventRecursiveMoves: true, // Prevent dropping nodes on own descendants 
     preventVoidMoves: true, // Prevent dropping nodes 'before self', etc. 
     dragStart: function(node, data) { 
      return true; 
     }, 
     dragEnter: function(node, data) { 
      return true; 
     }, 
     dragExpand: function(node, data) { 
      return true; 
     }, 
     dragOver: function(node, data) { 
      return true; 
     }, 
     dragLeave: function(node, data) { 
      return true; 
     }, 
     dragStop: function(node, data) { 
      return true; 
     }, 
     dragDrop: function(node, data) { 
      data.otherNode.moveTo(node, data.hitMode); 
     } 
    }, 
    renderColumns: function(event, data) { 
     var node = data.node, 
      $tdList = $(node.tr).find(">td"); 

     // td 1 value is edit icon 
     $tdList.eq(0).html(node.data.id); 
    } 
}); 

可以這樣解決嗎?我之前使用過fancytree,舊版本沒有問題。展開的虛假節點在加載樹時摺疊。

下面是截圖。

Tree screenshot

回答

0

擴展選項需要一個布爾值。嘗試通過的

"expanded": false, 

代替

"expanded": "false", 
+0

也就是說結構是從fancytree API的這種方法(一個或多個)儲存。喜歡這個。 var tree = $(「#news-categories-table」)。fancytree(「getTree」)。toDict(false)'。那是錯的嗎? – cvetan

+0

我發現錯誤。我沒有JSON stringify樹結構將其作爲JSON字符串發送到服務器,但數組。所以當我在服務器上進行JSON編碼時,它會搞亂文件類型。無論如何,現在沒問題。謝謝。 :) – cvetan