我正在使用ckEditor 5。 我的目的是创建一个简单的搜索功能来执行一些ajax调用,允许用户从结果列表中进行选择并采取相应的措施(插入链接,图像或媒体...)。
问题是我想动态更新插件视图。类似于以下内容:https://github.com/ckeditor/ckeditor5/issues/520,但我使用的是工具栏中的下拉菜单(我从EmbedMedia插件开始,现在不太在意设计)。 我在他们的git(https://github.com/ckeditor/ckeditor5/issues/1681)上问了同样的问题
我的模板就像:
content.scrollIntoView({behaviour: "smooth"});
我能够得到
搜索后,我的预期结果是
最后选择结果。
当前,我可以通过console.log看到正确初始化和更新的对象,但是视图没有更新...与第一个图像一样,它保持空白(这就是为什么我认为必须有某些东西应该能够放在我写 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
}
的地方。
此外,我可以说//do something here to force refresh or render the section
正常工作,因为如果在视图的初始化中调用for循环,则可以显示任意值。