选择2搜索当前项目列表

时间:2017-09-04 20:21:04

标签: jquery-select2

使用Select2的搜索默认值,我看到它使用我输入的字符的查询字词运行ajax调用。它不会过滤当前的项目列表。我没有在文档中看到任何控制此行为的内容。是否有可能改变它?

1 个答案:

答案 0 :(得分:0)

对于ajax数据,Select2没有选项来过滤当前缓存的结果集或新获取的集。它总是获得一个新的数据集。

我的解决方案是在新数据上编写自己的过滤器。它可以工作但是对于每个搜索项,它都会进行一次新的ajax调用,每次只返回相同的数据。

 processResults: function (data, query) {
            let normalizedData = hj.gic.swapFieldDataConditioner('name', 'text', data.results);

            if(query.term === undefined) {
                return {results: normalizedData};
            } else {
                let term = new RegExp(query.term, 'gi'), matchedResults = [];
                normalizedData.forEach(function (item) {
                    if(item.text.match(term)) {
                        matchedResults.push(item);
                    }
                });
                return {results: matchedResults};
            }
        }