typeahead.js возвращает "пустой" набор данных - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть небольшая проблема с твиттерами typeAhead , возвращающими пустые результаты, и официальные документы также не помогают.

что я ожидаю:

<div class="tt-suggestion tt-selectable">Warcraft II: Tides of Darkness</div>
...

Что происходит:

При вводе в поле ввода typeAhead возвращает пустой HTML, например, список заполняется в зависимости от того, сколько результатов получено, поэтомуон работает

<div class="tt-suggestion tt-selectable"></div>
<div class="tt-suggestion tt-selectable"></div>
<div class="tt-suggestion tt-selectable"></div>
<div class="tt-suggestion tt-selectable"></div>
<div class="tt-suggestion tt-selectable"></div>

Мой код:

var gameTitles= new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  remote: {
    url: '../api/autocomplete/%QUERY',
    wildcard: '%QUERY'
  }
});

$('#title').typeahead({minLength: 3}, {
  name: 'game-titles',
  display: 'value',
  source: gameTitles
});

, и для справки удаленное устройство возвращает следующее, поэтому я точно знаю, что мой запрос передается правильно

[
  "Warcraft II: Tides of Darkness",
  "Warcraft II: Beyond the Dark Portal",
  "Warcraft III: Reign of Chaos",
  "Warcraft II: The Dark Saga",
  "Peggle: World of Warcraft Edition",
  "Warcraft III: Reforged Spoils of War Edition",
  "World of Warcraft",
  "Warcraft III: Reforged",
  "Warcraft: Orcs & Humans",
  "World of Warcraft: Legion"
]

1 Ответ

0 голосов
/ 08 февраля 2019

Typeahead ищет объекты в массиве и по умолчанию для предложения ищет value в этих объектах, это можно изменить, назначив имя свойства, которое вы хотите использовать, свойству display

$('#title').typeahead({}, {
  name: 'game-titles',
  display: 'WHATEVER PROPERTY YOU WISH DISPLAYED',
  source: gameTitles
});

кроме того, typeAhead больше не поддерживается, как представляется, selectize.js - хорошая альтернатива

...