You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

jstree.core.data返回null时如何显示错误消息并终止加载状态?

解决jstree加载null数据时无法显示错误提示的问题

你的问题核心在于当返回数据为null时,没有调用jstree的回调函数cb——jstree会一直处于等待数据返回的状态,所以加载图标不会消失,错误提示也没法正常展示。

我们需要调整代码,在检测到data == null时,不仅显示错误div,还要调用cb([])告诉jstree数据加载完成(空数据集),这样jstree才会停止加载状态,让错误提示正常显示。

修改后的代码如下:

$('#jstree-test').jstree({ 
    core: { 
        data: function (node, cb) { 
            $.getJSON() 
                .done(function (data, status, xhr) { 
                    if(data == null) { 
                        $('#Error').show();
                        // 关键:调用cb传入空数组,结束jstree的加载状态
                        cb.call(this, []);
                    } else { 
                        globfunc.redirect(xhr); 
                        cb.call(this, data); 
                    } 
                }) 
                .fail(function (data, status, xhr) { 
                    if (xhr.hasOwnProperty("status")) { 
                        globfunc.redirect(xhr); 
                    } else { 
                        globfunc.showModal(xhr); 
                    }
                    // 请求失败时也需要结束加载状态,避免一直显示加载图标
                    cb.call(this, []);
                }); 
        } 
    } 
})

关键修改点说明:

  • 在data == null的分支中添加cb.call(this, []):明确通知jstree数据加载已完成,没有可渲染的节点,加载图标会随之消失,错误提示div就能正常显示。
  • 在fail回调中补充cb.call(this, []):避免请求失败时jstree一直卡在加载状态,保证UI状态始终正常。

这样调整后,无论是数据返回null还是请求失败,jstree都会结束加载状态,错误提示也能按预期展示了。

内容的提问来源于stack exchange,提问作者developer n

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:56:36