在Tinymce弹出式编辑器中插入动态列表框选项

时间:2016-01-15 作者:Parth Kumar

我试图创建动态列表框值,但在控制台中出现以下错误:Uncaught TypeError:无法分配给的只读属性“active”[

以下是我的代码(仅粘贴listbox的代码):

 body: [
                {
                    type: \'listbox\',
                    name: \'type\',
                    label: \'Panel Type\',
                    value: type,
                    \'values\': get_author_list(),
                    tooltip: \'Select the type of panel you want\'
                },
        ]
.....
我调用这个函数来获取动态列表。。。

  function get_author_list() {
    var d = "[{text: \'Default\', value: \'default\'}]";

    return d;
}
我猜listbox中的值只接受静态var,而不接受动态var。但我需要在此列表中插入动态值。请任何人帮我找到一个解决方法。有没有可能通过ajax插入?

提前谢谢!!

2 个回复
最合适的回答,由SO网友:Parth Kumar 整理而成

所以values助手的问题是它只接受对象数组,而我传递的是一个字符串。。。我已经通过传递一个对象数组更正了代码。。下面是更正的代码。。

body: [
        {
            type: \'listbox\',
            name: \'type\',
            label: \'Panel Type\',
            value: type,
            \'values\': get_author_list(),
            tooltip: \'Select the type of panel you want\'
        },
]
.....

function get_authors_list() {
    var result = [];
    var d = {};
    d[\'text\'] = \'Default\';
    d[\'value\'] = \'default\';
    result.push(d);
    return result;
}

SO网友:Jeroen

如果您在Javascript中引用了另一个函数,我认为您不需要get\\u author\\u列表后的()。

 body: [
            {
                type: \'listbox\',
                name: \'type\',
                label: \'Panel Type\',
                value: type,
                \'values\': get_author_list,
                tooltip: \'Select the type of panel you want\'
            },
    ]
此外,我认为您不需要在对象周围加引号。

 function get_author_list() {
    var d = [{text: \'Default\', value: \'default\'}];

    return d;
}