Select2 id不能是对象吗?

时间:2016-03-01 07:40:38

标签: javascript jquery-select2

使用select2,每个列表项有2个必需参数:" id"和" text"。 如果你的id和text都是String类型,那么一切都很好。但是,当我尝试将id设置为Object时,我会收到错误。在控制台中检查,我可以看到id = [" [object Object]"]

我用来生成select2的列表的代码:

var list = [ "apple", "banana", "orange"]
var list =  _.map(list, function(each){
 return { id: { myName: each, otherData: 1 }, text: each }
});

$(".js-example-basic-single").select2({
  data: list
});

我无法在文档的任何地方看到" id"只能是一个字符串而不是一个对象。

是否可以拥有" id"是一个对象?如果是这样,有没有特殊的语法?

3 个答案:

答案 0 :(得分:1)

我不知道jquery-select2但只是查看示例代码,你需要这样做:

return [{id: 0, myName: each, otherData: 1}, {id: 1, text: each}];

答案 1 :(得分:1)

ID通常是字符串,有时是数字,因为这些类型很容易比较。我个人不知道select2,但是,我认为它使用id作为dom引用,所以,id必须是字符串。

尝试类似的事情:

var list = ['banana', 'apple', 'orange']
   .map((fruit, index) => {type: fruit, id: (Number(index || 0) + 1).toString()})
   //.sort() //sort fruits as you want, etc...
;

答案 2 :(得分:0)

我得到了Select2维护者的确认,它需要是最新版本的字符串。 https://github.com/select2/select2/issues/4227

由于id和text必须是字符串,因此添加变量的唯一方法是使对象为:

{id:'string',text:'string',userDefinedKey:'string'}