Внести программное изменение в трикс, не вызывая трикс-изменения - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь программно внести изменения в трикс, используя что-то вроде:

element.editor.insertHTML(' ')

Это работает без проблем, но, к сожалению, это уже в событии трикс-изменения.Таким образом, insertHTML снова запускается сам, и мы застряли в цикле.

Итак, вопрос в том, есть ли способ внести изменения в редактор, не вызывая трикс-изменения?

Спасибо.

1 Ответ

1 голос
/ 01 июня 2019

Вы можете установить флаг, чтобы игнорировать следующее trix-change событие. Что-то вроде:

let ignoreNextChange = false

element.addEventListener("trix-change", () => {
  if (ignoreNextChange) {
    ignoreNextChange = false
    return
  }
  if (/* Your logic for inserting a non-breaking space */) {
    ignoreNextChange = true
    element.editor.insertHTML(" ")
  }
})
...