Typeahead JS "пульт всегда используется" - PullRequest
0 голосов
/ 07 сентября 2018

Я понимаю, что удаленный доступ следует использовать только тогда, когда результаты предварительной выборки не превышают установленного предела. Я установил лимит в 1, и у предварительной выборки более одной записи. Тем не менее он использует удаленный для извлечения данных и в конечном итоге показывает только 1 результат.

   initialise_quick_search: function () {

        var building_data = new Bloodhound({
            datumTokenizer: Bloodhound.tokenizers.obj.whitespace('building_name'),
            queryTokenizer: Bloodhound.tokenizers.nonword,
            prefetch: {
                url: '/quick_search/quick_search_results?search_buildings=1',
                //cache: false
            },
            remote: {
                url: '/quick_search/quick_search_results?search_buildings=1&query=%QUERY',
                wildcard: '%QUERY',
                cache: false
            }
        });

        building_data.initialize();


        var $quick_search = $('#quick_search');

        $quick_search.typeahead({
                highlight: true,
                hint: false,
                minLength: 2,
            },
            {
                name: 'buildings',
                display: 'building_name',
                source: building_data,
                limit: 1,

                templates: {
                    header: 'Buildings',

                    suggestion: function (data) {

                        return '<p><a target="_blank" href=' + data.href + '>' + data.text + '</a></p>'
                    }
                }

            }
        );

        $quick_search.bind('typeahead:close', function (ev, suggestion) {
            $quick_search.val('');
            $quick_search.typeahead('close');
        });

        $quick_search.bind('typeahead:select', function (ev, suggestion) {
            window.open(suggestion.href, '_blank');
        });

    }

1 Ответ

0 голосов
/ 07 сентября 2018

Если кто-то хочет, чтобы удаленный запуск не выполнялся, если в предварительной выборке есть хотя бы одна запись, измените значение достаточное в приведенном ниже фрагменте в файле typeahead.bundle.js

 var oParser = function() {
        "use strict";
        return function parse(o) {
            var defaults, sorter;
            defaults = {
                initialize: true,
                identify: _.stringify,
                datumTokenizer: null,
                queryTokenizer: null,
                matchAnyQueryToken: false,
                sufficient: 5,
                indexRemote: false,
                sorter: null,
                local: [],
                prefetch: null,
                remote: null
...