Fabricjs: insertChars () вызывает странные проблемы со стилем текста - PullRequest
0 голосов
/ 03 июня 2019

Так что будет сложно показать какой-либо код, например, что-то, в значительной степени адаптированное к ткани.Но при использовании функции insertChars () возникает странная проблема.

В текстовом поле каждый символ имеет индивидуальный стиль с параметром "styles", все работает нормально, пока я не использую пользователь insertChars ()

Таким образом, мой код настроен на получение события изменения текстового поля, когда он запускается, он выбирает начало выделения и конец выделения текста в текстовом поле фабрики и использует insertChars следующим образом:

textbox.insertChars (text, null, selectionStart, selectionEnd);

Это работает нормально, но самое странное то, что если я сейчас изменю параметр "styles" строки над ней, то я простозаменяет и меняет свой стиль.Разрыв строки все еще там, что я вижу.Поэтому, если у меня есть две строки, подобные этой:

A

B

Со стилями, подобными этим:

styles = {
    0:{ 
        0:{
            fontSize:10 
        }
    },
    1:{
        0:{
            fontSize:20
        }
    }
}

, и теперь я меняю стили [0] [0] .fontSize = 50 вторая строка также изменяется.Он не делает этого до того, как я запускаю insertChars () для замены второй строки.

Так что в качестве правильного примера:

var text = "A\nB\n"; // styles above applied

, и мы выбираем «A» и делаем insertChars ()и замените его на «С», а затем измените стиль, «Б» также изменится.Очень странно и не имеет смысла, так как он не делает этого перед выполнением insertChars, он просто заменяет стиль "C".

Это сложно объяснить, но я не могу действительно опубликовать какой-либо код, так какогромный (я не могу опубликовать фрагмент без окружающего контекста), так что я надеюсь, что это имеет смысл и просто интересно, сталкивался ли кто-нибудь с этим?

...