如何创建具有相同标签名称的嵌套式在线印迹?

时间:2019-10-17 13:13:49

标签: javascript quill parchment

我正在与Quill合作,我正在尝试创建一个自定义污点,在该污点中可能会嵌套多个污点。这样做的目的是,我希望仅当某些条件匹配时才显示部分文本,例如if语句。嵌套部分是因为除了使处理部分变得更容易之外,还可以添加AND和OR运算符,因为我只需要找到父代并迭代子代即可。

到目前为止,我具有以下Blot结构:

class ConditionBlot extends Inline {
    static create(value) {
        let node = super.create();
        node.setAttribute('idCondition', value.idCondition);
        node.setAttribute('clause', value.clause);
        node.setAttribute('color', value.color);
        node.setAttribute('idConditionBox', value.idConditionBox);
        return node;
    }

    static formats(node) {
        return {
            idCondition: node.getAttribute('idCondition'),
            clause: node.getAttribute('clause'),
            color: node.getAttribute('color'),
            idConditionBox: node.getAttribute('idConditionBox')
        };
    }
}
ConditionBlot.blotName = 'condition';
ConditionBlot.tagName = 'condition';

问题在于,即使从用户选择中已经有条件印迹,当我从“羽毛笔”编辑器调用formatText()函数时,它也不会嵌套印迹。但是,如果有不同的污点,它会嵌套它。

在与同事交谈时,他建议我使用羊皮纸提供的create()函数动态创建印迹,并更改每个印迹的标签名称,从而嵌套印迹。我想知道这是否是唯一可行的解​​决方案,或者是否有另一种方法可以实现这一目标。

还有其他方法可以使用常规的Quill方法插入具有相同blotName的嵌套印迹吗?

0 个答案:

没有答案