Упреждающий ввод показывает только точное совпадение. Как я могу показать все данные, которые возвращаются с удаленного URL-адреса?

Я столкнулся с проблемой, что я хочу реализовать поиск, в котором, если вы вводите строку с двойными кавычками (""), она также должна работать.

Пример: яблоко и "яблоко" должны возвращать один и тот же результат.

Когда я звоню в серверную часть, вызов для обоих поисковых запросов перенастраивает одно и то же, но ввод текста каким-то образом фильтрует данные, и данные не отображаются в случае «яблока».

Я попытался использовать фильтры, такие как dropDownFilter и filter, назначив им false:

$('#searchInput').typeahead({ minLength: 1, order: "asc", delay: 500, 
                              dynamic: true, groupMaxItem: 6, highlight: false, 
                              hint: true, group: ["{{group}}, kind"], 
                              dropdownFilter: false,

Но это не работает, может кто что подскажет.

Любая помощь будет оценена.!


person Shiv4nsh    schedule 23.12.2015    source источник
comment
Можете ли вы включить код, в котором возникает проблема?   -  person thanksd    schedule 23.12.2015
comment
$('#searchInput').typeahead({ minLength: 1, order: asc, delay: 500, dynamic: true, groupMaxItem: 6, highlight: false, подсказка: true, group: [{{group}}, kind] , dropdownFilter: false}) Я пробовал это.!   -  person Shiv4nsh    schedule 23.12.2015
comment
как вы заполняете свой источник данных?   -  person blurfus    schedule 23.12.2015
comment
Я использую URL-адрес внутри источника, который заполняет данные.   -  person Shiv4nsh    schedule 23.12.2015
comment
Вы согласны предоставить свою собственную функцию matcher?   -  person blurfus    schedule 23.12.2015
comment
Я могу это предоставить. но я не знаю, как это сделать и как это работает.. и я тоже не смог много почерпнуть из документации.. Не могли бы вы привести мне пример для этого случая. Я пробовал это: matcher:function(item){return true;} Но это не сработало. Я пытался ударить и попробовать. Извините, если я был туп с этим.   -  person Shiv4nsh    schedule 23.12.2015


Ответы (1)


Попробуйте предоставить свою собственную функцию сопоставления. Что-то вроде:

$('.typeahead').typeahead({source:myarray, matcher: function(item){
    // the regular expression will (optionally) consider double-quotes
    var reg = new RegExp('"?'+this.query+'"?');

    if( item.match(reg) ){
        return true;
    }else{
        return false;
    }
 }});
person blurfus    schedule 23.12.2015