Twitter Bootstrap Typeahead не загружает данные ajax

У меня есть следующий код для инициализации typeahead с использованием версии 2.3.0:

jQuery('#search_terms').typeahead({
    source: function(query, process) {
        return jQuery.ajax({
            url: '/api/path',
            type: 'GET',
            data: {q: query},
            dataType: 'json',
            success: function (json) {
                return process(json.suggestion);
            }
        });
    }
});

Я убедился, что typeahead работает путем подстановки статических данных. Я видел, что json.suggestion оценивается как одно слово, как и ожидалось. Сам ответ ajax выглядит так:

{"suggestion":"word"}

Однако Bootstrap отказывается загружать ответ в typeahead. Что мне не хватает? Я признаю, что у меня возникли проблемы с поиском подробной документации Bootstrap Typeahead через ajax, кроме как здесь, на SO.

Заранее спасибо.


person isherwood    schedule 13.02.2013    source источник


Ответы (1)


Мы обнаружили, что Bootstrap Typeahead повторно угадывает наши данные ajax с помощью собственного фильтра сопоставления. Сделав совпадение истинным, мы решили эту проблему:

jQuery('#search_terms').typeahead({
    source: function(query, process) {
        jQuery.ajax({
            url: 'api/path',
            type: 'GET',
            data: {q: query},
            dataType: 'json',
            success: function (json) {
                process([json.suggestion]);
            }
        });
    },
    matcher: function (param) {return true}
});
person isherwood    schedule 13.02.2013