UndoManager API
大约 1 分钟
UndoManager API
UndoManager 管理撤销/重做操作栈,自动记录实体的增删改操作。
引入
const { UndoManager } = vjmapext;通常通过 mapcadLayer.undoManager 访问,或直接调用 mapcadLayer.undo() / mapcadLayer.redo()。
方法
undo()
撤销上一步操作。如果没有可撤销的操作则忽略。
mapcadLayer.undo();
// 或
mapcadLayer.undoManager.undo();redo()
重做上一步被撤销的操作。
mapcadLayer.redo();canUndo()
| 返回值 | 类型 | 说明 |
|---|---|---|
| — | boolean | 是否有可撤销的操作 |
canRedo()
| 返回值 | 类型 | 说明 |
|---|---|---|
| — | boolean | 是否有可重做的操作 |
clear()
清空撤销/重做栈。
recordReorder(previousOrder)
记录绘图顺序变更,使其可撤销。
| 参数 | 类型 | 说明 |
|---|---|---|
| previousOrder | string[] | 变更前的实体 ID 顺序数组 |
自动记录
大多数操作(实体添加、删除、属性修改)由 EntityStore 自动录入撤销栈,无需手动调用。recordReorder 仅在需要记录绘图顺序变更时手动使用。
工作机制
注意事项
注意
执行新操作后,之前被撤销的重做栈会被清空。即如果撤销了 3 步后执行了新操作,这 3 步将无法再重做。