对Trix进行程序化更改而不会触发trix-change

时间:2019-05-26 13:20:32

标签: ruby-on-rails trix

我正在尝试通过编程方式对trix进行更改,例如:

element.editor.insertHTML(' ')

这没有问题,但是很遗憾,这已经在trix-change事件中了。因此insertHTML会再次触发自身,我们陷入了循环。

问题是,有没有办法在不触发trix-change的情况下对编辑器进行更改?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以设置标志以忽略下一个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(" ")
  }
})