在单页面应用程序

时间:2017-01-04 05:03:07

标签: javascript kendo-ui undo-redo ctrl kendo-editor

我有单页应用程序,它由文本编辑器(kendo Editor)组成。文本编辑器中的数据有点像这样替换

$("#editor").kendoEditor({
                    resizable: {
                        content: false,
                        toolbar: true
                    }
                });

                var editor = $("#editor").data("kendoEditor");

                var setValue = function () {
                    editor.value($("#value").val());
                };

请参阅演示here

问题: 所以我正在更改A的记录然后保存它。然后我切换到B。现在如果我执行 Ctrl + Z ,文本编辑器会显示A的记录。我该如何防止这种行为。

是否可以根据需要删除撤消历史记录,或者阻止文本编辑器用以前的记录替换文本的方法?

1 个答案:

答案 0 :(得分:2)

更新:更好的解决方案。

我联系了Kendo开发者,他们提供了一个简洁的解决方案。

var editor = $("#editor").data("kendoEditor");
editor.undoRedoStack.clear();
  

注意:此功能未在公共API中记录,并且是   可能会在较新版本中更改。这是版本的工作   2016.3.1118

demo

旧解决方案。

我最终摧毁并将小部件重新绑定到textarea。

http://dojo.telerik.com/OjIZe

$("#destroy").click(function(){ 
  var copy=$("#editor").clone(); 
  $("#editor").data('kendoEditor').wrapper.find("iframe").remove(); 
  $("#editor").data('kendoEditor').destroy(); 
  $("#test").empty(); 
  $("#test").append(copy); 
  $("#editor").kendoEditor({ resizable:    { 
    content: false, toolbar: true 
  } 
  }); 
});