Все, я пытался применить Twitter typeahead
и Bloodhound
в свой проект на основе некоторого рабочего образца, но я не могу понять приведенный ниже код.
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('songs'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
Исходный код выглядит так, как показано ниже.
var songlist = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('songs'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 10,
remote: '/api/demo/GetSongs?searchTterm=%QUERY'
});
В официальном документе только что сказано:
datumTokenizer - функция с подписью (датум), которая преобразует датум в массив строковых токенов. Необходимый.
queryTokenizer - функция с сигнатурой (запросом), преобразующая запрос в массив строковых токенов. Необходимый.
Что это значит ? Не мог бы кто-нибудь помочь мне рассказать об этом больше, чтобы я лучше понимал?
["Dog", "cat"]
. Затем, когда приходят результаты, datumTokenizer также разделяет их. Итак, если у вас есть результат с названием песни Dogs and cats rock out, он также будет разделен на массив. Наконец, Bloodhound сравнивает два массива, и, если весь массив запроса находится в массиве данных, он считает это совпадением. Я уверен в этом примерно на 80%. - person mlissner   schedule 02.12.2015