【问题标题】:Quill JS custom blot inserting the text "true" instead of the correct textQuill JS自定义印迹插入文本“true”而不是正确的文本
【发布时间】:2018-12-05 13:38:30
【问题描述】:

我正在使用 Blots 创建自定义 quill 元素,但在尝试使用存储的 Delta 设置编辑器内容时,我得到了一些奇怪的结果。这有点难以用语言来解释,所以我创建了一个具有可重现场景的代码笔。 https://codepen.io/jake613/pen/wQLvxa - 按照 javascript 部分顶部的 cmets 进行复制

requirement for codepen link

【问题讨论】:

  • 我实际上正在为此苦苦挣扎 - 我不认为您设法找到解决方案
  • codepen.io/ivanalejandro0/pen/GdOBjQ。那家伙为自定义印迹创建了一个有效的实现。我最终修改了他为我的要求所做的事情。 @SamKelham

标签: javascript quill parchment


【解决方案1】:

创建增量时,您的印迹的value() 方法的返回值将作为插入指令插入到增量中。如果您的印迹类没有值函数,则某些印迹的默认返回值为真。因此,当您应用该增量时,您的 Blot 文本将是真实的。

检查你的印迹的所有父类的值函数,你会看到应用了什么。

在您的StarTagBlot 类中添加一个函数value()。此函数必须返回与您放入 delta 插入方法 new Delta().insert({StarTagBlot: 'some text'}, attributesData) 的第一个参数中的相同以显示您的印迹。如果您的自定义印迹中有一些文本,它应该是这样的:

class StarTagBlot extends Inline {
...
    //returns what delta expects as insert text
    //if empty only true is returned
    value() {
        return { StarTagBlot: this.domNode.innerText.trim()};
    }
...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    • 2012-10-15
    • 1970-01-01
    • 1970-01-01
    • 2020-05-06
    相关资源
    最近更新 更多