使用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服务器,因为子节点表示的项目可能自上次查看后发生了变化。也就是说,可能存在更多/不同/更少的节点。
整个上午花了这么多,看不出我做错了什么(或者应该做的不同)。有任何想法吗?
谢谢
好的我找到了解决方案......
在after_close事件中,我将节点的加载状态设置为false。这导致jstree在我下次打开节点时再次触发加载,并且我得到任何更新的树项。