2

私は/api/searchesファイルにこのjsonを持っています:

[{"id":"513dbb61a61654a845000005","text":"ingeniero agrónomo"},{"id":"513a11d4a6165411b2000008","text":"ingeniero agrónomo"}]

select2を使用して結果を表示しています。

これは私のselect2設定です:

$('#query_txt').select2
    width: 'resolve'
    minimumInputLength: 3
    tags: false
    showSearchBox: true
    maximumSelectionSize: 1
    closeOnSelect: true
    multiple: false
    ajax:
      url: "/api/searches"
      quietMillis: 100
      dataType: 'json'
      data: (term, page) -> {q: term}
      results: (data, page) ->
        results: data

入力を入力すると、ingeniero agrónomoselect2という単語が2つの結果を示唆しているので、次の画像で確認できます。

ここに画像の説明を入力してください

欲しい、2jsonに等しい結果が存在するか、それ以上の場合1は、select2の提案に限定する

2つ以上の等しい結果が存在する場合、select2の提案を1つに制限するにはどうすればよいですか?

4

1 に答える 1

1

結果関数を更新して、データ関数から出力された配列を処理し、重複したテキスト、テストされていないコードを削除する必要がありますが、次のような方法で行う必要があります。

$('#query_txt').select2
    width: 'resolve'
    minimumInputLength: 3
    tags: false
    showSearchBox: true
    maximumSelectionSize: 1
    closeOnSelect: true
    multiple: false
    ajax:
      url: "/api/searches"
      quietMillis: 100
      dataType: 'json'
      data: (term, page) -> {q: term}
      results: (data, page) ->
        indexes = []
        uniques = []
        i = 0
        while i < data.length
          if indexes[data[i].text] is `undefined`
            indexes[data[i].text] = "defined"
            uniques.push
              id: data[i].text
              text: data[i].text
          i++
        results: uniques
于 2013-03-15T13:02:00.680 に答える