我正在尝试修改TinyMCE 4"链接"插件,以允许用户从ListBox元素中选择由AJAX请求动态更新的内容.
我在editor.windowManager.open()之前创建了ListBox元素,因此它们最初是正确呈现的.我有一个执行AJAX请求的onselect处理程序,并以JSON格式获取响应.
我需要对JSON响应做的是让它更新另一个ListBox元素,用新结果替换现有项目.
我很困惑,文档非常不清楚.我不知道是否应该替换整个控件,或删除项目然后添加新项目.我不知道是否需要实例化一个新的ListBox控件,或者将它渲染为HTML等.
基本上,我可以访问原始渲染的ListBox(名称:"module"}
win.find('#module');
我有来自AJAX请求的新值:
var data = tinymce.util.JSON.parse(text).data;
我已经尝试创建一个新的Control配置对象,比如
newCtrlconfig = {
type: 'listbox',
label: 'Class',
values: data
};
Run Code Online (Sandbox Code Playgroud)
但我不知道如何渲染它,更不用说它取代现有的了.
我试过了
var newList = tinymce.ui.Factory.create(newCtrlconfig);
然后
newList.renderHtml()
但即使这样,呈现的HTML也不包含任何项目标记.检查这些对象只是令人沮丧:有"设置","值","_值","项目",所有这些都将很乐意存储我的价值观,但它们甚至不清楚哪些将起作用.
由于它是一个ListBox而不是一个简单的SELECT菜单,我甚至无法轻易地使用DOM来操作这些值.
有没有人在4.x中征服过TinyMCE ListBox?