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  阅读(99)  评论(0)    收藏  举报