找回密码
 立即注册

QQ登录

只需一步,快速开始

Derrick.Jiao 讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-6-1 16:20  /   查看:2239  /  回复:0
在14.1这个版本我们新增了Undo/Redo栈API支持,具体可以参考下面帖子的介绍
https://gcdn.grapecity.com.cn/showtopic-92149-1-1.html

以及学习指南的行为管理
https://demo.grapecity.com.cn/sp ... undo-manager/purejs

我们主要来聊聊Undo栈的使用,以及利用这个api实现操作的“一键回退”按指定“步长”回退操作。

我们来看下这个demo,这个demo是基于上述学习指南改的。在初始化的的时候我们通过execute执行了5个命令,使其进入了undo栈里面。点击一键撤回,一步回退到5个操作之前。这些命令,也将由undo栈进入redo栈。按步长回退,则将按照指定的步长undo到某一步。整个demo回退最关键的就是undo方法。
image.png509380797.png

“一键回退”利用undo栈的长度,做了个循环,循环操作指定次数的undo接口,而按指定步长也是同理执行指定次数的undo方法。
关键代码如下
  1. let undoManager = spread.undoManager();
  2. var arr = undoManager.getUndoStack();
  3.     for (var i = 0; i < arr.length; i++) {
  4.       undoManager.undo();
  5.       updateInfo(spread);
  6.     }
复制代码
下载附件即可查看完整代码


一键还原.zip

1.96 MB, 下载次数: 36

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部