我开始掌握 quill.js - 我希望能够创建一个包含预设内容的自定义印迹,但我可以更改它。我已经弄清楚如何从中等克隆指南创建块嵌入印迹,但我注意到创建的节点没有被捕获在增量内容中-我在样式化的 div 中设置了一些文本,我想保存这些更改......我也想将此过程用于类似的事情动态字幕...重要的是我可以保存增量。node.innerText = 'test test test' 设置初始内容很好,但更改不绑定到增量。
有没有办法在块内嵌套印迹?或者我可以以某种方式将印迹内容与增量绑定吗?任何有用的示例代码将不胜感激。谢谢你。
class EditModuleBlot extends BlockEmbed {
static create(value) {
let node = super.create();
node.setAttribute('style', value.style);
node.innerText = 'test test test';
return node;
}
static value(node) {
return {
style: node.getAttribute('style')
};
}
}
EditModuleBlot.blotName = 'editmodule';
EditModuleBlot.tagName = 'div';
这是我调用它的 Vue.js 方法:
clickAddModule() {
let range = this.quillInstance.getSelection(true);
this.quillInstance.insertText(range.index, '\n', Quill.sources.USER);
this.quillInstance.insertEmbed(range.index + 1, 'editmodule', {
style: 'padding:10px;border: 2px dashed black;'
}, Quill.sources.USER);
this.quillInstance.setSelection(range.index + 2, Quill.sources.SILENT);
}
delta json 不捕获 div innerText:
{
"insert": {
"editmodule": {
"style": "padding:10px;border: 2px dashed black;"
}
}
},
* 更新 * 不要将 quill 用于块扩展,它不能正确处理它们——使用 Slate.js 或 Prose Mirror 或 CkEditor