JavaScript / CodeMirror-обновить текстовую область

Как использовать функцию обновления из CodeMirror 2?

обновить()

Если ваш код что-то меняет размер элемента редактора (window изменения размеров уже прослушиваются), или разверните его, вы, вероятно, должны следовать up путем вызова этого метода для обеспечения CodeMirror по-прежнему выглядит как предназначенный.

Я хочу обновить все текстовые области после ссылки щелкнул

пробовал

  $('.CodeMirror').each(function(){
    getElementById($(this).attr('id')).refresh();
  });

но это не работает....

2 ответов


метод refresh (как и все другие методы CodeMirror) не живет на узле DOM, а на объекте экземпляра, который возвращается при создании редактора (путем вызова CodeMirror или CodeMirror.fromTextArea). Так что вам придется хранить их где-нибудь, чтобы это сработало.


при создании экземпляра экземпляра CodeMirror он помещается в качестве свойства в оболочку div.

$('.CodeMirror').each(function(i, el){
    el.CodeMirror.refresh();
});

приведенный выше фрагмент не воссоздает редактор, а вместо этого использует существующий.