jstree 异步加载 默认只能解析固定格式的返回值 利用回调来处理服务器返回的数据,

  1. 默认只能解析固定格式的返回值
    $('#red-ui-networktree-body')
    .jstree({
    "plugins": ["contextmenu", "search", "json_data", "sort", "themes"],
    'core': {
    'data': {
    "url": networktreeurl,
    "data": function (node) {
    return { "archive": "archive1", "reference": node.id };
    },
    "success": function (nodes) {
    callBackBuildingSpaceTree(nodes);
    }
    }

             },
             "sort": function (prevEle, currentEle) {
                 
             },
             "contextmenu": {    // disable the context menu, the "contextmenu" plugin is only
                 "items": {}     // needed for the context menu / right click event
             },
              "themes": { 
                 "theme" : "default", 
                 "dots" : true, 
                 "icons": true 
             },
         }).on('ready.jstree', function (e, data) {
             renderOSPoint();
         }).on("open_node.jstree", function (e, data) {
             renderOSPoint();
         }); 
    
  2. 利用回调来处理服务器返回的数据, 默认只能解析固定格式的返回值
    $('#red-ui-networktree-body')
    .jstree({
    "plugins": ["contextmenu", "search", "json_data", "sort", "themes"],
    'core': {
    'check_callback': true,
    'data': function (node, callback) {
    console.log("node",node)
    $.ajax({
    type: "GET",
    headers:{"archiveName":"Test1",'content-type': 'application/x-www-form-urlencoded'},
    //url:networktreeurl+"?reference=" + (node.id === '#' ? '' : node.id),
    url:networktreeurl,
    dataType:"json",
    async: false,
    data: {"reference": node.id === '#' ? '' : node.id},
    success: function (resp) {
    console.log("data",resp.data)
    let res = [];
    for (let i = 0; i < resp.data.length; i++) {
    res.push({});
    res[i].id = resp.data[i].reference;
    res[i].text = resp.data[i].name;
    res[i].children = resp.data[i].hasChild; //设置children = true/false 展开该节点 自动异步加载子节点
    //res[i].a_attr = {title: data[i].description};

                                 let iconItem = gObjectIcons[resp.data[i].classId];
                                 if(!iconItem){
                                     iconItem = gObjectIcons['-1'];
                                 } 
                                 res[i].icon = iconItem.icon //'origin_Analog' 
                             }  
                             callback.call(this, res); 
                         }
                     });
                 },
             },
             "sort": function (prevEle, currentEle) {
                 //var dataOfprevEle = this.get_node(prevEle).data
                 //var dataOfcurrentEle = this.get_node(currentEle).data
                 //if (dataOfprevEle && dataOfcurrentEle) {
                 //    if (dataOfprevEle.type === 'device' && dataOfcurrentEle.type === 'device') {
                 //        return this.get_node(prevEle).data.sort > this.get_node(currentEle).data.sort
                 //            ? 1
                 //            : -1;
                 //    }
                 //}
             },
             "contextmenu": {    // disable the context menu, the "contextmenu" plugin is only
                 "items": {}     // needed for the context menu / right click event
             },
              "themes": { 
                 "theme" : "default", 
                 "dots" : true, 
                 "icons": true 
             },
         }).on('ready.jstree', function (e, data) {
             //console.log('ready.jstree');
             renderOSPoint();
         }).on("open_node.jstree", function (e, data) {
             //console.log('open_node.jstree',data);  
             renderOSPoint();
         }).on("select_node.jstree", function (e, data) { 
             //console.log("select_node.jstree",data); 
         }); 
    
posted @ 2022-10-28 16:19  kting  阅读(70)  评论(0编辑  收藏  举报