Преобразование модели CKEditor 5 с Promise - PullRequest
0 голосов
/ 28 ноября 2018

Я создаю плагин CKEditor 5, который должен отображать список, основанный на результате вызова REST.Я зарегистрировал свой элемент схемы с:

editor.model.schema.register('myItem', {
  allowIn: '$root',
  isBlock: true,
  isObject: true
});

Затем добавил преобразователи:

editor.conversion.for('upcast').add(upcastElementToElement({
  view: {
    name: 'div',
    classes: 'myItem'
  },
  model: 'myItem'
}));
editor.conversion.for('dataDowncast').add(downcastElementToElement({
  model: 'myItem',
  view: (modelElement, viewWriter) => {
    return getContent(modelElement, viewWriter);
  }
}));
editor.conversion.for('editingDowncast').add(downcastElementToElement({
  model: 'myItem',
  view: (modelElement, viewWriter) => {
    const div = getContent(editor.model, viewWriter);

    return toWidget( div, viewWriter, { label: 'widget label' } );
  }
}));

Мой метод getContent отвечает за выборку данных с помощью вызова REST.Моя проблема в том, что если я использую axios или fetch для получения данных, он возвращает Promise, и я не знаю, как передать результат в атрибут 'view' объектаОбъект передан в метод downcastElementToElement.Этот атрибут 'view' ожидает функцию, которая возвращает объект для отображения.Есть ли способ добиться этого?

1 Ответ

0 голосов
/ 29 ноября 2018

CKEditor 5 не поддерживает асинхронное преобразование.Это усложнит конвертацию и приведет к плохому опыту, так как редактор должен быть заблокирован во время выборки.Я бы предложил создать преобразование синхронизации и затем после извлечения заменить его вашим конкретным элементом из БД.

...