2013-07-23 2 views
2

Я использую selct2, и я загружаю некоторые данные с помощью ajax. Результат не ограничен, но я должен сделать бесконечный свиток. Некоторые идеи?Select2 бесконечная прокрутка без ограничений

У меня есть JSON, как этот

{"len":30,"data":[{"value":"223118","type":1,"name":"Peter","language":3}, 
{"value":"223118","type":1,"name":"John","language":2}, 
{"value":"223118","type":2,"name":"Mike","language":1}, 
{"value":"223118","type":1,"name":"George","language":3} 
.... 
]} 

И я использую функциональность ВЫБ.2 стандартную для AJAC загрузки:

$(selector).select2({ 
     placeholder: "Search", 
     minimumInputLength: 1, 
     id: function(bond){return {id: bond._id};}, 
     ajax: { 
      //url: $("#area-of-operating_0").attr('data-url'), 
      url: 'myurl', 
      dataType: 'json', 
      quietMillis: 100, 
      data: function (term, page) { 
       return { 
        page_limit: 10, // page size 
        page: page // page number 
        //q: term 
       }; 
      }, 

      results: function (data, page) { 
       var more = (page * 10) < data.total; 
       return {results: data.data, more: more} 
      } 
     }, 

     formatResult: selectFormatResult, // see example 
     formatSelection: selectFormatSelection 
}) 

Проблема заключается в том, что JSON может быть с 1000 элементов. Я хочу сделать бесконечный свиток с 10 элементами

+0

Обеспечьте приятель кода – dreamweiver

+0

Предполагаю, что вы можете сделать вызов ajax в каком-то пределе и на основе прокрутки, которую вы можете вызвать, сделать вызов ajax еще раз для некоторых значений – dreamweiver

+0

Нет, у меня нет доступа к серверной части. – qwedsa

ответ

1

Это не представляется возможным, используя только select2 как упомянуто в demo

Для того, чтобы дать возможность удаленной службы должны поддерживать какой-то механизм подкачки ...

Невозможно включить бесконечную прокрутку, если серверная сторона не поддерживает пейджинг.

Что вы можете сделать, так это сохранить весь JSON в некоторой JS-переменной при первом запросе. Затем вы можете последовательно получать еще несколько результатов из локальной переменной, когда пользователь прокручивается вниз. Это вариант для вас?

Смежные вопросы