检查是否有undo / redo backbone undo

时间:2014-04-04 08:55:45

标签: jquery backbone.js undo-redo

我正在为undoredo使用backbone撤消js,我需要检查撤消或重做是否可用。 有没有像hasundo()hasredo()

这样的方法
   View = Backbone.View.extend({
            initialize: function () {
                // If the model's value changes, update the view
                this.model.on("change:value", function (model, value, options) {
                    if (value != this.$el.html()) {
                        this.$el.html(value);
                        //need to check here,and add code for enable or disable my undo/redo buttons

                    }
                }, this);
            }
  })

2 个答案:

答案 0 :(得分:1)

您需要通过查看属性是否存在并且类型为“function”来“手动”进行检查。

请参阅此答案:Javascript check if function exists

答案 1 :(得分:1)

Backbone.Undo.js内置了isAvailable函数,专门针对您的用例。 Read the documentation here。你只需要写

  

if(myUndoManager.isAvailable(“undo”)){/ * doSomething * /}

由于这个问题已经快四个月了,你可能已经以某种方式解决了这个问题。但是,为了完整起见,我仍然想放弃答案。也许它可以帮助那些在这个问题上捏造的人。 :)