CKEditor async命令 - 手动调用afterCommandExec

时间:2016-10-19 20:27:03

标签: javascript ckeditor ckeditor4.x

我正在尝试使用CKE Command定义提供的异步标志,如示例here中所示。

我有一个命令,它打开一个jQuery UI对话框,其中一些数据是从用户输入的。这部分工作正常。当对话框关闭时(即用户点击确定取消),我会尝试按照CKE示例显示并手动调用editor.fire("afterCommandExec"),这会产生以下结果错误:

  

未捕获的TypeError:无法读取未定义的属性“命令”

它来自这里: http://docs.cksource.com/ckeditor_api/symbols/src/plugins_undo_plugin.js.html(第69行)

if ( undoManager.enabled && event.data.command.canUndo !== false )
        undoManager.save();

我理解错误发生的原因:没有事件数据与fire()的调用一起发送。但是,他们的示例也没有发送事件数据。我可以使用命令手动触发事件作为数据,它似乎工作:

editor.fire("afterCommandExec", {
    command: editor.getCommand('link')
});

然而,这似乎不是正确的方法。我做错了什么?

1 个答案:

答案 0 :(得分:0)

我想说这个例子是一个关于如何使用的最小代码,而不是一个真实的工作示例,以及它可能无法工作的原因。

如果您的错误来自撤消系统,请标记您的命令不会将其与canUndo = false一起使用,并自行处理撤消堆栈的添加,而不是自动依赖它。