【问题标题】:How can I get the data in my array object to my jstree?如何将数组对象中的数据获取到我的 jstree?
【发布时间】:2017-02-20 04:25:41
【问题描述】:

您好,我想知道如何将数组对象的数据获取到我的 jstree..

例如我有这个数组对象(这是我的控制台中的响应,用于在我的保管箱中列出文件夹)

    0:Object
       .tag:"folder"
        id:"id:dEOW7ElDHUgAAAAAAAAABw"
        name:"Yahoo! Mail"
        path_display:"/Yahoo! Mail"
        path_lower:"/yahoo! mail"
  1:Object
       .tag:"folder"
        id:"id:dEOW7ElDHUgAAAAAAAAAJg"
        name:"Sample Folder"
        path_display:"/Sample Folder"
        path_lower:"/sample folder"

  2:Object
       .tag:"folder"
        id:"id:dEOW7ElDHUgAAAAAAAAAJw"
        name:"Sample Folder 1"
        path_display:"/Sample Folder 1"
        path_lower:"/sample folder 1"

我尝试了这段代码,但没有显示文件夹我试图控制它,响应是顶部的 3 个对象

          $("#people").jstree({
                        // generating tree from json data
                        "json_data" : {
                            "data" : [{
                                    "data": response.entries,

                                }]

                        },
                        // plugins used for this tree
                        "plugins" : [ "json_data", "ui", "types" ]
                    })

【问题讨论】:

  • 你试过什么? Dropbox HTTP API list_folder 返回一个 JSON。因此,您只需要将 API 响应映射到 jstree 兼容格式,如 jstree.com/docs/json 中所述
  • 我编辑了我的代码,response.entries 来自 dropbox 中的响应 api

标签: javascript jquery arrays jstree


【解决方案1】:

您只需要按照 jstree 标准映射数据。这是一个基于给定数据的基本示例:

var response = {
  "entries": [{
    "tag": "folder",
    "id": "id:dEOW7ElDHUgAAAAAAAAABw",
    "name": "Yahoo! Mail",
    "path_display": "/Yahoo! Mail",
    "path_lower": "/yahoo! mail"
  }, {
    "tag": "folder",
    "id": "id:dEOW7ElDHUgAAAAAAAAAJg",
    "name": "Sample Folder",
    "path_display": "/Sample Folder",
    "path_lower": "/sample folder"
  }, {
    "tag": "folder",
    "id": "id:dEOW7ElDHUgAAAAAAAAAJw",
    "name": "Sample Folder 1",
    "path_display": "/Sample Folder 1",
    "path_lower": "/sample folder 1"
  }]
}

// map data to jstree standard
response.entries.forEach(function(entry) {
	if (entry.tag == 'folder') {
  	entry.parent = '#'
  }
  entry.text = entry.name
})

$('#jstree').jstree({
  'core': {
    'data': response.entries
  }
});
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/themes/default/style.min.css" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jstree/3.2.1/jstree.min.js"></script>

<div id="jstree"></div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    相关资源
    最近更新 更多