保存数据而不包含建议
有时您可能需要保存包含所有已接受或已放弃建议的编辑器数据。常见情况包括文档预览或打印。
# 跟踪更改数据插件
要启用保存数据而不包含建议,您需要使用 TrackChangesData
插件。它在跟踪更改包中可用。导入它并将其添加到您的设置中
import { TrackChangesData } from 'ckeditor5-premium-features';
// More imports.
// ...
ClassicEditor.builtinPlugins = [ TrackChangesData, /* ... */ ];
然后您可以使用 跟踪更改数据插件 API 获取包含所有已接受或已放弃建议的编辑器数据
const data = await editor.plugins.get( 'TrackChangesData' ).getDataWithAcceptedSuggestions();
请注意,此方法是异步的(它返回一个用编辑器数据解析的 promise)。
# 配置跟踪更改数据插件
在大多数情况下,不需要对跟踪更改数据插件进行任何配置。但是,有时运行跟踪更改数据插件需要更多努力。
通常,跟踪更改数据插件使用一个临时的编辑器实例来加载当前数据,接受或放弃建议,然后获取编辑器数据。
这可能会在以下情况下出现一些问题
- 如果在编辑器初始化后执行了一些操作(例如,为您的自定义插件加载某种数据),
- 如果您使用自己的自定义编辑器类,其 API 与
ClassicEditor
不同。
在这些情况下,您可以提供自己的回调作为跟踪更改数据插件的配置参数
{
trackChangesData: {
editorCreator: ( config, createElement ) => {
// Custom callback.
// ...
}
}
}
回调传递了两个参数
config
- 用于初始化编辑器的编辑器配置。createElement
- 一个用于创建 DOM 元素的函数,如果您需要一个(或多个)来初始化您的编辑器。通过此函数创建的 DOM 元素是隐藏的,将在插件完成其工作后清除。
回调应该返回一个用编辑器实例解析的 promise。
一个使用多根编辑器的回调示例,该编辑器需要在 .create()
方法的第一个参数中传递多根。
{
trackChangesData: {
editorCreator: ( config, createElement ) => {
return CustomMultiRootEditor.create( {
header: createElement(),
content: createElement(),
footer: createElement()
}, config );
}
}
}
我们每天都在努力使我们的文档保持完整。您是否发现了过时信息?是否缺少某些内容?请通过我们的 问题跟踪器 报告它。
随着 42.0.0 版本的发布,我们重新编写了大部分文档以反映新的导入路径和功能。感谢您的反馈,这将帮助我们确保文档的准确性和完整性。