selectize js使用数组作为源

时间:2013-10-08 00:12:01

标签: javascript jquery jquery-plugins selectize.js

您好我从我的Ajax调用中获取了一个JSON编码数组(“html”),我希望在selectize中添加值和文本(我正在使用标记)。 我怎么能这样做?

HTML

<input type="text" value="test" class="demo-default selectized" id="input-tags" tabindex="-1" style="display: block;">

JQUERY

try {
    data = $.parseJSON(html);
var obj = jQuery.parseJSON(html);

outcome = (obj.outcome);

$('#input-tags').selectize({
            delimiter: ',',
            persist: false,
            maxItems: 1,
            create: function (input) {
                return {
                    value: input,
                    text: input
                }
            }
        });

}

2 个答案:

答案 0 :(得分:12)

您可以将数组映射到对象数组,如下所示:

data = $.parseJSON(html);
var items = data.map(function(x) { return { item: x }; });

然后使用"labelField" and "valueField"指定文本/值:

$('#input-tags').selectize({
        delimiter: ',',
        persist: false,
        options: items,
        labelField: "item",
        valueField: "item"
    });

Fiddle Demo.

答案 1 :(得分:2)

使用ES6,你可以减少你的oneliner

const items = data.map(item => ({item}));