javascript - 如何在 ProseMirror 中动态地使节点的子内容不可编辑?

标签 javascript prose-mirror

我创建了一个包含 captioned_image 节点类型的文档架构,该节点类型引用单独 CMS 中的图像。该图像有标题和来源,我希望在文档中可以对其进行编辑。当用户在 ProseMirror 编辑器中编辑内容时,我可以记录更改并向 CMS 发送包含更新的请求。

但是,当其他用户在 CMS 中编辑图像时,标题和致谢字段可能会被“锁定”。

captioned_image 节点的标题和信用子节点被其他用户锁定时,如何使这些字段不可编辑?不能将所选内容放置在某个位置。

最佳答案

我可以想到两种方法

  1. 当文档的某个部分被锁定时,过滤变换操作,取消(重置为旧状态)任何触及该区域的操作(可以通过对中的元素调用 forEach 来确定) action.transform.mapping.maps)。

  2. 为这些类型的节点编写自定义节点 View ,并为其指定属性readOnly。当它们应该变得不可编辑时切换它,当它打开时,使用 contenteditable=false 呈现锁定的内容。但请注意,这并不能防止对内容进行程序性更改。此外,它还会导致无法将光标放入其中,这可能是不希望的。

关于javascript - 如何在 ProseMirror 中动态地使节点的子内容不可编辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40939898/

相关文章:

javascript - 输入类型之间的 DOM/jQuery 事件传播差异

javascript - 使用 javascript 在 Internet Explorer 中迭代 formData 对象

javascript - AngularJS 复选框无法正常工作

javascript - CoffeeScript 将对象映射到类实例

javascript - 设置 innerHTML 之间的转换

javascript - tiptap prosemirror 应该仅可编辑特定节点

prose-mirror - prosemirror : converting JSON output into HTML

javascript - 如何使用 Javascript 从值数组中获取深度嵌套的对象结构