Я использую ckEditor 5. Моя цель - создать простую функцию поиска для выполнения некоторых вызовов ajax, позволить пользователю выбирать из списка результатов и действовать соответственно (вставляя ссылку, или изображение, или мультимедиа ...).
Проблема в том, что я хочу динамически обновлять вид плагина.Что-то похожее на это: https://github.com/ckeditor/ckeditor5/issues/520,, но я использую выпадающий список на панели инструментов (я начал с плагина EmbedMedia и сейчас не слишком заботился о дизайне).Я задал тот же вопрос на их мерзавце (https://github.com/ckeditor/ckeditor5/issues/1681)
Мой шаблон такой:
this.setTemplate( {
tag: 'form',
attributes: {
class: [
'ck',
'ck-results-form'
],
tabindex: '-1'
},
children: [
this.searchInputView,
this.searchButtonView,
{
tag: 'div',
attributes: {
class: [ 'ck-result-grid' ]
},
children: this.items
},
this.saveButtonView,
this.cancelButtonView,
]
} );
// updateList method is like this:
updateList( valuesArray ) {
console.log(this.items);
this.items = new Array();
console.log(this.items);
for (let i = 0; i < valuesArray.length && i < 20; i++) {
const urlView = new TableSizeGridBoxView(i, valuesArray[i]);
urlView.on('select-url', () => {
this._selectedUrl = valuesArray[i];
});
this.items.push( urlView );
}
console.log(this.items);
//do something here to force refresh or render the section
}
Я могу получить
![this](https://user-images.githubusercontent.com/16055024/55604550-a2281400-5770-11e9-9725-2f492c5e2c3c.JPG)
Мой ожидаемый результат после поиска - получить
![this](https://user-images.githubusercontent.com/16055024/55604570-c1bf3c80-5770-11e9-9284-375e209b4418.jpg)
и, наконец, выбрать результат.
В настоящее время я вижу, что объект правильно инициализирован иобновляется с помощью console.log, но представление не обновляется ... оно остается пустым, как на первом изображении (поэтому я думаю, что должно быть что-то, что я должен быть в состоянии поместить туда, где я написал //do something here to force refresh or render the section
).
Более того, я могу сказать, что TableSizeGridBoxView
работает правильно, потому что я могу отображать произвольные значения, если я вызываю цикл for при инициализации представления.