Jstree 中错误时间的数据绑定

Data Binding at wrong time in 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 事件之后被调用。这可能解释了节点状态,但对我没有帮助。

我每次打开节点时都需要它来调用网络服务器,因为自上次查看以来,子节点表示的项目可能已经发生变化。那就是可能有more/different/fewer个节点。

花了整个上午的时间,却看不出我做错了什么(或者应该做不同的事情)。有什么想法吗?

谢谢

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

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