在Jstree中错误的时间进行数据绑定

时间:2019-04-10 10:26:10

标签: json ajax jstree

使用我拥有的jstree v3

this.elements.$tree.jstree({
            core: {
                data: function (node, successCallback) {
                    // Handle node expansion
                    thisTmp._expandNode(node, successCallback);
                },
...

这是我第一次打开节点并转到服务器并获取子节点时的正常工作。如果我然后关闭该节点,它也被称为,并且我不想在那一刻打扰服务器。另外,如果我然后重新打开该节点,则根本不会调用此函数。

调查中,我注意到传递的节点始终处于loading: true状态,所有其他节点都设置为false。

进一步的调查显示,此函数在before_open.jstree事件之前和after_close.jstree事件之后被调用。这可能解释了节点状态,但无济于事。

每次打开节点时,都需要它来调用Web服务器,因为自上次查看以来,子节点代表的项目可能已更改。那可能会有更多/不同/更少的节点。

整个上午都花在此上,看不到我在做什么错(或应该做不同的事情)。有什么想法吗?

谢谢

1 个答案:

答案 0 :(得分:0)

好的,我找到了解决方法...

在after_close事件中,我将节点的加载状态设置为false。这将导致jstree在下次打开节点并获得任何更新的树项时再次触发加载。