撤销扩展

Undo 对象提供了一组用于撤销或重做已进行更改的方法。
有关撤销扩展的更多信息,请参阅 撤销/重做功能 文章。

方法

gantt.ext.undo 对象提供以下方法:

Undo() / Redo()

  • undo (): void - 撤销在 gantt 中应用的更改
gantt.ext.undo.undo();
  • redo (): void - 重新应用之前已撤销的更改
gantt.ext.undo.redo();

getUndoStack() / getRedoStack()

  • getUndoStack (): UndoRedoAction[] - 获取用户执行的撤销操作栈
var stack = gantt.ext.undo.getUndoStack();
  • getRedoStack (): UndoRedoAction[] - 获取可用的重做操作栈
var stack = gantt.ext.undo.getRedoStack();

返回的栈是撤销用户操作的数组。每个操作包含多个命令。命令是一个包含以下属性的对象:

  • type - (string) 指定命令类型:"add"、"remove" 或 "update"
  • entity - (string) 表示被更改对象的类型:"task" 或 "link"
  • value - (object) 更改后的任务或链接对象
  • oldValue - (object) 更改前的任务或链接对象

setUndoStack() / setRedoStack()

  • setUndoStack (stack): void - 设置撤销用户操作的栈
    • stack - (UndoRedoAction[]) - 要设置的撤销栈
gantt.ext.undo.setUndoStack(stack);
  • setRedoStack (stack): void - 设置重做用户操作的栈
    • stack - (UndoRedoAction[]) - 要设置的重做栈
gantt.ext.undo.setRedoStack(stack);

clearUndoStack() / clearRedoStack()

  • clearUndoStack (): void - 清空撤销命令栈
gantt.ext.undo.clearUndoStack();
  • clearRedoStack (): void - 清空重做命令栈
gantt.ext.undo.clearRedoStack();

saveState()

  • saveState (id, entityType): boolean - 在更改发生前记录任务或链接的当前状态
    • id - (string | number) - 任务或链接的标识符
    • type - (string) - 指定与 id 对应的条目类型,支持的值为 "task" 或 "link"
gantt.ext.undo.saveState(1, "task");
gantt.ext.undo.saveState(1, "link");

更多详情请参见 Undoing/Redoing changes made from code 文章。

Back to top