拿zTree做Ajax的文件夹管理器,新建文件夹需要交由服务器生成并且返回结果.
1.新建文件夹的时候我在父级下新生成一个Node,并且设置属性dummy为true,直接进入编辑状态
2.beforeRename总是返回false,在beforeRename中发起ajax请求.
3.1.如果返回值标志创建成功,则将生成的数据放进treeNode中,删除dummy属性,updateNode,并cancelEditName,将服务器返回的名字用作强制更新的名字
3,2如果返回失败,则cancelEditName,并且在dummy为true的removeNode
到这里都还算OK,现在问题来了.经过第一步,用户发现操作错误,不准备新建这个文件夹了,点了Esc取消,这时候新建的Node就原样保留下来了,我都找不到一个可以触发删除的时间点.
源代码我也稍微看了下,cancel的过程中似乎没有调用任何callback.
所以我希望能在cancel的过程前和过程后设置 beforeCancelEditName 和 onCancelEditName,并且将newName作为一个参数传过来,这样可以在需要删除时不传递newName,而需要保留的时候传递newName进来作为区分.
虽然我想过新建一个总是会删除的节点来作为临时节点,不过总感觉哪儿不对.
1.新建文件夹的时候我在父级下新生成一个Node,并且设置属性dummy为true,直接进入编辑状态
2.beforeRename总是返回false,在beforeRename中发起ajax请求.
3.1.如果返回值标志创建成功,则将生成的数据放进treeNode中,删除dummy属性,updateNode,并cancelEditName,将服务器返回的名字用作强制更新的名字
3,2如果返回失败,则cancelEditName,并且在dummy为true的removeNode
到这里都还算OK,现在问题来了.经过第一步,用户发现操作错误,不准备新建这个文件夹了,点了Esc取消,这时候新建的Node就原样保留下来了,我都找不到一个可以触发删除的时间点.
源代码我也稍微看了下,cancel的过程中似乎没有调用任何callback.
所以我希望能在cancel的过程前和过程后设置 beforeCancelEditName 和 onCancelEditName,并且将newName作为一个参数传过来,这样可以在需要删除时不传递newName,而需要保留的时候传递newName进来作为区分.
虽然我想过新建一个总是会删除的节点来作为临时节点,不过总感觉哪儿不对.