2016-03-01 52 views
3

使用select2,每個列表項目有兩個必需的參數:「id」和「text」。 如果您的id和文本都是字符串類型,那麼一切都很好。但是,當我嘗試使id成爲Object時,我收到錯誤。在控制檯檢查,我可以看到ID =「的翻譯:」]Select2的ID不能是一個對象?

的代碼我用生成的選擇2列表:

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」成爲對象?如果是這樣,是否有任何特殊的語法?

回答

1

我不知道jQuery的選擇2只是看着示例代碼,你需要做的是這樣的:

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

IDS通常是字符串,有時數字,因爲這些類型很容易比較。我個人不知道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... 
; 
0

我得到了確認,從選擇二的維護者,它必須是最新版本的字符串。 https://github.com/select2/select2/issues/4227

由於ID和文本必須是字符串,添加變量的唯一方法是讓對象是:

{ID:「串」,文本:「串」,userDefinedKey:「串」}

相關問題