javascript - Quill JS自定义印迹插入文本“true”而不是正确的文本
问题描述
我正在使用 Blots 创建自定义羽毛笔元素,但是在尝试使用存储的 Delta 设置编辑器内容时,我得到了一些奇怪的结果。这有点难以用语言来解释,所以我创建了一个具有可重现场景的代码笔。 https://codepen.io/jake613/pen/wQLvxa - 按照javascript部分顶部的评论进行复制
requirement for codepen link
解决方案
创建 delta 时value()
,您的印迹方法的返回值将作为插入指令插入到 delta 中。如果您的印迹类没有值函数,则某些印迹的默认返回值为真。因此,当您应用该增量时,您的 Blot 文本将是真实的。
检查你的印迹的所有父类的值函数,你会看到应用了什么。
在你的StarTagBlot
类中添加一个函数value()
。该函数的返回值必须与您在 delta insert 方法的第一个参数中的返回值相同,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()};
}
...
}
推荐阅读
- python - 如何测量预训练模型(例如 vgg、resnet...)提取的图像特征之间的语义相似度?
- redirect - 如何在 Vercel 中进行 301 重定向
- google-maps - 如何在地图上设置按钮
- blockchain - truffle 是否应该在所有依赖项中编译所有导入的 @openzeppelin 合约?
- apache-spark - 日期格式在 pyspark 中验证错误的年份
- android - Android - 使用添加的打印机打印 PDF 文件
- scala - 如何获取使用 ScalaTest 实现的测试类中所有测试的列表?
- git - 添加具有先前提交前缀的提交
- python - 将一次性购买转化为每月累计金额
- flutter - 列内的 ListView 未正确展开