Come aggiornare dinamicamente gli elementi in un menu a discesa?È possibile reinizializzare un CKEditor Combobox/menu a discesa?
Ho un plug-in personalizzato per CKEditor che popola un menu a discesa con un elenco di elementi che posso immettere nel mio textarea
.
Questo elenco di elementi proviene da un array Javascript denominato maptags
, che viene aggiornato in modo dinamico per ogni pagina.
var maptags = []
Questo elenco di tag viene aggiunto al menu a discesa prima volta che si fa clic su di esso con la funzione init:
. Il mio problema è cosa succederebbe se gli elementi di quell'array cambiassero mentre il client cambia le cose nella pagina, come posso ricaricare quell'elenco nell'array aggiornato?
Ecco il mio CKEditor codice del plugin:
CKEDITOR.plugins.add('mapitems', {
requires: ['richcombo'], //, 'styles' ],
init: function (editor) {
var config = editor.config,
lang = editor.lang.format;
editor.ui.addRichCombo('mapitems',
{
label: "Map Items",
title: "Map Items",
voiceLabel: "Map Items",
className: 'cke_format',
multiSelect: false,
panel:
{
css: [config.contentsCss, CKEDITOR.getUrl(editor.skinPath + 'editor.css')],
voiceLabel: lang.panelVoiceLabel
},
init: function() {
this.startGroup("Map Items");
//this.add('value', 'drop_text', 'drop_label');
for (var this_tag in maptags) {
this.add(maptags[this_tag][0], maptags[this_tag][1], maptags[this_tag][2]);
}
},
onClick: function (value) {
editor.focus();
editor.fire('saveSnapshot');
editor.insertHtml(value);
editor.fire('saveSnapshot');
}
});
}
});
Questa soluzione funziona bene con dati statici, ma quando provo utilizzando la soluzione di cui sopra con i dati recuperati dal server, mostra vuota. Puoi aiutare? –
preleva i tuoi articoli dal server, ad es. dalla chiamata Ajax e metterli nella matrice "yourListOfItems" –
Questo è un po 'disordinato, ma mi ha fatto sulla buona strada. Grazie! post scriptum la struttura dell'oggetto richCombo è strana e schifosa, e questa capacità dovrebbe davvero essere una parte di richCombo invece di doverla hackerare dall'esterno. –