Ckeditor как добавитьRichoCombo в fetch api?
CKEDITOR.plugins.add('type_elem_dropdown', {
init: function (editor) {
editor.on('instanceReady', function () {
// Retrieve scenarioId and branchId from the editor's configuration
var scenarioId = editor.config.scenarioId;
var branchId = editor.config.branchId;
// Function to fetch type_elements data
function fetchTypeElements(scenarioId, branchId) {
return fetch(`/scenario/${scenarioId}/branch/${branchId}/typeelements`)
.then(response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response.json();
})
.catch(error => {
console.error('Error fetching type_elems:', error);
return [];
});
}
// Fetch type elements and initialize the RichCombo
fetchTypeElements(scenarioId, branchId).then(typeElems => {
if (!typeElems || typeElems.length === 0) {
console.warn('No typeElems available, aborting addRichCombo.');
return;
}
// Create RichCombo UI elements
typeElems.forEach((element, index) => {
// Add a RichCombo for each typeElem
editor.ui.addRichCombo('TypeElemNames' + (index + 1), {
label: 'Type Elements',
title: 'Insert Type Element',
voiceLabel: 'Type Elements',
className: 'cke_format',
multiSelect: false,
panel: {
css: [CKEDITOR.skin.getPath('editor')].concat(editor.config.contentsCss),
attributes: {
'aria-label': 'Type Elements Dropdown'
}
},
init: function () {
this.startGroup('Type Elements');
this.add(element.id, element.name, element.name);
},
onClick: function (value) {
editor.focus();
editor.fire('saveSnapshot');
editor.insertHtml(value);
editor.fire('saveSnapshot');
}
});
});
});
});
}
});
Добавил addRichCombo в функцию fetch из API, она не работает и не показывает выпадающий список?!!!
Я пытался добавить выпадающий список в редактор с опциями выпадающего списка, полученными из API (fetch(`/scenario/${scenarioId}/branch/${branchId}/typeelements`)), но не получается, ничего не показывает. И я хочу добавить много Rich Combo, число получить из API тоже.
Пожалуйста, помогите мне!