2013-09-05 1 views
0

Можно ли загружать полностью пользовательский набор данных в select2? Я имею в виду, что я могу настроить свойство текста опции, могу ли я также сделать это для id?Укажите метку идентификатора для данных, загруженных из массива

ниже код работает идеально

var dummy = [ 
    { id: 1, Name: "opt1" }, 
    { id: 2, Name: "opt2" } 
]; 

$("#myselect").select2({ 
    data: { results: dummy, text: "Name" }, 
    formatSelection: function (item) { return item.Name; }, 
    formatResult: function (item) { return item.Name } 
}); 

Однако мои входящие данные имеет свойство идентификатора в колпачках. Возможно, мне удастся переименовать свойства этих объектов через набор полученных данных, но объем данных довольно большой, и я, конечно, не хочу замедлять эту простую загрузку. Я также хотел бы, чтобы эти свойства объекта остались.

Короче говоря, мои данные как

var dummy = [ 
    { ID: 1, Name: "opt1" }, 
    { ID: 2, Name: "opt2" } 
]; 

Можно ли определить альтернативный идентификатор ключа?

+0

На самом деле это своего рода внешних данных сервера. В любом случае, глядя на доступные варианты, я нашел ответ. Спасибо – patryk

ответ

3

да, есть опция под названием id

Функция используется для получения идентификатора от объекта выбора или строк , представляющих ключ, при котором идентификатор хранится.

$("#myselect").select2({ 
    id: 'ID', 
    data: { results: dummy, text: "Name" }, 
    formatSelection: function (item) { return item.Name; }, 
    formatResult: function (item) { return item.Name } 
}); 
+0

Все правильно. Я искал неправильные разделы документов select2. Сначала я попытался поместить это в объект 'data', который был более интуитивным для меня, но это выглядит неплохо. большое спасибо – patryk