Javascript Backbone.Undo.js未按预期工作。事实上根本不起作用

Javascript Backbone.Undo.js未按预期工作。事实上根本不起作用,javascript,jquery,backbone.js,model,undo-redo,Javascript,Jquery,Backbone.js,Model,Undo Redo,我正试图用我现有的代码实现。我的应用程序是一种模板生成器 这是主对象的console.log。 正如您所看到的,它有调色板和编辑器对象。我想注册撤销,用它重做。 这是我的undo manager集成代码 var UndoManager = new Backbone.UndoManager; UndoManager.register(app.editor,app.palette,DdBuilder); // Pass any number of arguments UndoMan

我正试图用我现有的代码实现。我的应用程序是一种模板生成器

这是主对象的console.log。

正如您所看到的,它有调色板和编辑器对象。我想注册撤销,用它重做。 这是我的undo manager集成代码

var UndoManager = new Backbone.UndoManager;
    UndoManager.register(app.editor,app.palette,DdBuilder); // Pass any number of arguments
    UndoManager.startTracking(); // Start observation after instantiation
    $(".fusion_undo").click(function () {

        alert(UndoManager.isAvailable("undo")); //returns false always
        UndoManager.undo();
    });
    $(".fusion_redo").click(function () {
        UndoManager.redo();
    });

我相信这是一个简单的集成,我遗漏了一些小细节。知道它可能是什么吗?

是否执行
app.editor
app.palete
DbBuilder
触发主干事件?UndoManager将侦听器添加到传递到
寄存器
-函数的对象中。如果您没有撤消管理器,请执行
添加
删除
重置
更改
事件,并从这些事件创建可撤消的操作

您可能希望通过将对象记录到控制台来测试对象是否触发这些事件

app.editor.on("all", console.log, console);
app.palette.on("all", console.log, console);
DbBuilder.on("all", console.log, console);
如果它们触发了其中一个事件,并且
isAvailable(“undo”)
之后仍然返回false,那么肯定有一个更棘手的问题,但请首先尝试此方法