使用我拥有的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服务器,因为自上次查看以来,子节点代表的项目可能已更改。那可能会有更多/不同/更少的节点。
整个上午都花在此上,看不到我在做什么错(或应该做不同的事情)。有什么想法吗?
谢谢
答案 0 :(得分:0)
好的,我找到了解决方法...
在after_close事件中,我将节点的加载状态设置为false。这将导致jstree在下次打开节点并获得任何更新的树项时再次触发加载。