来自JSON的JsTree-grid未定义值

时间:2017-01-09 16:03:38

标签: javascript jstree

JsTree-grid插件不能像我预期的那样工作。我通过JSON文件响应的AJAX请求获取节点数据(包括网格列的数据)。

JS片段:

    .jstree({
    'core' : {
        'data' : {
            'url' : '/cms/ajax/ajax_json_tree.php?table=subpages_tree&operation=get_node',
            'data' : function (node) {
                return {
                    'id' : node.id,
                    'seo_title' : node.seo_title
                };
            },
            'dataType' : 'json'
        },
        'check_callback' : true,
        'themes' : {
            'responsive' : false
        }
    },
    'plugins' : ['state','dnd','contextmenu','grid'],
    grid: {
        columns: [
            {width: 300, header: "Name"},
            {width: 100, header: "SEO", value: "seo_title"}
        ]
    },
    'force_text' : true

})

JSON响应来自:

/cms/ajax/ajax_json_tree.php?table=subpages_tree&operation=get_node

[
   {
      "id":255,
      "text":"NEWS",
      "children":true,
      "seo_title":"news"
   },
   {
      "id":256,
      "text":"DEVWEBMAIL",
      "children":false,
      "seo_title":"devwebmail"
   }
]

node.seo_title 总是未定义。你能解释一下这是为什么吗?似乎问题在于jstree中的网格插件集成。

版本:我使用的是jstree 3.3.3.0和jstreegrid 3.4.2。

1 个答案:

答案 0 :(得分:0)

最后,我做到了。问题出在JSON数据文件中。它必须有一个不同的数据结构:

[
   {
      "id":255,
      "text":"NEWS",
      "children":true,
      "data" {
          "seo_title":"news"
      }
   },
   {
      "id":256,
      "text":"DEVWEBMAIL",
      "children":false,
      "data" {
          "seo_title":"devwebmail"
      }
   }
]