【发布时间】:2013-09-14 20:19:48
【问题描述】:
我正在尝试修改 TinyMCE 4“链接”插件,以允许用户从 AJAX 请求动态更新的 ListBox 元素中选择内容。
我在 editor.windowManager.open() 之前创建了 ListBox 元素,因此它们最初可以正确呈现。我有一个执行 AJAX 请求并获得 JSON 格式响应的 onselect 处理程序。
我需要对 JSON 响应做的是让它更新另一个 ListBox 元素,用新结果替换现有项目。
我很困惑,文档非常不清楚。我不知道我是否应该替换整个控件,或者删除项目然后添加新项目。不知道是不是需要实例化一个新的ListBox控件,还是渲染成HTML等等。
基本上,我可以使用
访问原始呈现的 ListBox(名称:“模块”}win.find('#module');
我有来自 AJAX 请求的新值:
var data = tinymce.util.JSON.parse(text).data;
我已经尝试创建一个新的 Control 配置对象,比如
newCtrlconfig = {
type: 'listbox',
label: 'Class',
values: data
};
但我不知道如何渲染它,更不用说替换现有的了。
我试过了
var newList = tinymce.ui.Factory.create(newCtrlconfig);
然后
newList.renderHtml()
但即便如此,呈现的 HTML 也不包含任何项目的标记。检查这些对象只是令人沮丧:有“设置”、“值”、“_values”、“项目”,所有这些都可以愉快地存储我的值,但甚至不清楚它们中的哪一个会起作用。
因为它是一个 ListBox 而不是一个简单的 SELECT 菜单,所以我什至不能轻易地使用 DOM 来操作这些值。
有人在 4.x 中征服了 TinyMCE 列表框吗?
【问题讨论】: