rubenv / angular-select2

Select2 directive for Angular.js
62 stars 52 forks source link

Paging together with multiple selections not working #23

Open cdietze opened 9 years ago

cdietze commented 9 years ago

I have a select2 element that gets its data via ajax paged from the server. The select element shall allow multiple selections. Selecting elements from page 1 works fine. However, when selecting elements from page > 1 they appear briefly in the input box and then dissappear. From scanning the source code I think whats happening is that a query request with search terms = "" is issued (without page field so my server returns page 1). Then the current viewValues are filtered by the result, so anything not on the first page gets ditched. This is the code block where that happens: https://github.com/rubenv/angular-select2/blob/master/src/select2.js#L199

Am I doing something wrong with my query function? Or is this a bug?

cdietze commented 9 years ago

I hacked together a workaround: I store all retrieved items in an array (a set actually because I check for duplicates). Then essentially I do this in the query function:

if(query.page === undefined) {
    query.callback({
        results: allData
    });
    return;
}
tyaslab commented 9 years ago

+1 Experiencing same issue, but instead of iterating options, I iterated optionItems in getSelection(callback) function.

https://github.com/rubenv/angular-select2/pull/26