我正在尝试使用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')
});
然而,这似乎不是正确的方法。我做错了什么?
答案 0 :(得分:0)
我想说这个例子是一个关于如何使用的最小代码,而不是一个真实的工作示例,以及它可能无法工作的原因。
如果您的错误来自撤消系统,请标记您的命令不会将其与canUndo = false
一起使用,并自行处理撤消堆栈的添加,而不是自动依赖它。