zTree_v3
zTree_v3 copied to clipboard
关于beforeRemove和beforeDrop异步操作的问题
在ztree里面 callback中的beforeRemove方法 ,如果该方法使用异步 那么无论返回什么值 ztree都会删除该节点
而对于beforeDrop方法 无论返回什么值 都会移动节点
例如:
beforeRemove: async (treeId, treeNode) => { await delete();//向后台发送需要删除数据 return false;//这里无论返回什么 ztree都会删除节点 }
你好, zTree 完成的时间比较久远,是不支持 async await 这种异步方式,所以 虽然你在外面定义了 async ,但是程序里面可完全没使用 await 进行等待呀。
你这种使用方法,不修改源码是不可能正常的。
补充: 使用原始方法写的话,可以在 callback 内 return false;阻止zTree 默认删除操作;同时 触发 ajax 到 server 进行删除操作, 删除成功后使用 removeNode 方法单独删除即可。
@zTree 感谢解答 关于你说的
可以在 callback 内 return false;阻止zTree 默认删除操作;同时 触发 ajax 到 server 进行删除操作
如何在 return false的同时 去触发ajax删除操作?? 如果beforeRemove后面直接 return false 那么接下来的任何代码都不会执行 犹如在代码里面 return 一样 return后面的代码将不会执行
ajax 是异步, 你写在 代码里面当然是 先执行 ajax ,然后return false 呀
@daGaiGuanYu 请仔细看看 removeNode 方法的 API 文档中关于 callbackFlag 参数的说明