Как создать вложенные встроенные блоты с тем же именем тега? - PullRequest
1 голос
/ 17 октября 2019

Я работаю с Quill и пытаюсь создать пользовательский блот, в который можно было бы вложить несколько таких блотов. Цель этого состоит в том, чтобы я хотел, чтобы части текста отображались только при соблюдении определенных условий, например, в операторе if. Вложенность заключается в том, что было бы возможно добавить операторы AND и OR, кроме того, чтобы упростить поворот обрабатывающей части, поскольку мне нужно было бы только найти родителя и выполнить итерации потомков.

Пока у меня есть следующая структура блоттинга:

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() из редактора Quill, она не вкладывает блот,хотя в выборе пользователя уже есть условие блот. Но если есть другой блот, он его вкладывает.

Во время разговора с коллегой он предложил мне создать блоты динамически, используя функцию create(), предоставляемую пергаментом, и изменив имя тега длякаждое пятно, таким образом позволяя вкладывать пятна. Мне интересно, если это единственно возможное решение или есть ли другой способ, которым я могу сделать это.

Есть ли другой способ вставить вложенные блоты с тем же blotName, используя обычные методы Quill?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...