2017-09-04 6 views
0

Select2のデフォルトの検索を使用すると、入力した文字の検索条件でajax呼び出しを実行することがわかります。現在の項目リストに対してフィルタリングは行いません。この動作を制御するためにドキュメント内に何も表示されませんでした。それを変更することは可能ですか?Select2現在のアイテムリストを検索

答えて

0

ajax'dデータの場合、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}; 
      } 
     } 
関連する問題