首页 > 解决方案 > 阻止 undo() 清除编辑器 Quill / QuillJS 中的所有内容?

问题描述

我创建了一种将 Quill 文本保存到数据库的方法。每次用户单击保存的文档时,它都会从数据库中提取保存的 Quill 文本,并让文本出现在 Quill 文本编辑器中。此时,如果我触发撤消功能,它将删除从数据库中提取的所有文本,因此页面为空白。

我认为正在发生的事情是 Quill 编辑器将从数据库中提取的文本视为粘贴到文本编辑器中,因此当您触发撤消功能时,它会清除“从数据库中粘贴/拉取”。

有没有办法阻止这种情况发生?当您从数据库中提取初始文本后立即触发撤消功能时,有没有办法让 quill 不清除所有内容?

标签: quill

解决方案


当您将数据库中的内容“加载”到编辑器中时,无论您喜欢与否,您都在更改 Quill Delta 内部的内容(数据)。对 Quill 的内容所做的任何类型的更改都会被其本身视为......以及......所做的更改,因此,可以撤消的东西。

[...] 每次用户单击保存的文档时,它都会从数据库中提取保存的 Quill 文本,并让文本出现在 Quill 文本编辑器中。此时,如果我触发撤消功能,它将删除从数据库中提取的所有文本,因此页面为空白。[...] 有没有办法阻止这种情况发生?当您从数据库中提取初始文本后立即触发撤消功能时,有没有办法让 quill 不清除所有内容?

由于您只是在 Quill 中添加了内容,并且没有兴趣担心您之前所做的任何更改,因此我建议您看一下这个. 基本上,这个想法是:

  1. 获取内容。
  2. 将相同的内容添加到编辑器中。
  3. 添加完成后,调用以下代码:
quill.history.clear();

之后,当尝试执行撤消操作时,什么都不会发生,因为没有存储任何历史记录。


推荐阅读