Javascript 提前输入minlengh 0建议不显示猎犬

Javascript 提前输入minlengh 0建议不显示猎犬,javascript,jquery,autosuggest,typeahead.js,typeahead,Javascript,Jquery,Autosuggest,Typeahead.js,Typeahead,我正在处理自动建议任务,我有这样的要求,比如如果提前输入建议文本框为空,则在建议列表上显示默认选项,如下面的JSFIDLE 这个例子非常有效。但我从远程检索到一个建议列表,使用我的代码下面列出的“猎犬不工作”: var sos_adapt = new Bloodhound({ datumTokenizer: function(d) { return Bloodhound.tokenizers.whitesp

我正在处理自动建议任务,我有这样的要求,比如如果提前输入建议文本框为空,则在建议列表上显示默认选项,如下面的JSFIDLE

这个例子非常有效。但我从远程检索到一个建议列表,使用我的代码下面列出的“猎犬不工作”:

var sos_adapt = new Bloodhound({
                    datumTokenizer: function(d) {
                        return Bloodhound.tokenizers.whitespace(d.value);
                    },
                    queryTokenizer: Bloodhound.tokenizers.whitespace,
                    remote: {
                        url: 'appsearch?ty=so&cid=%CID&query=%QUERY',
                        replace: function(url, query) {
                            return url.replace('%QUERY', query).replace('%CID', customer_id);
                        },
                        filter: function(sos) {

                            return $.map(sos, function(sos) {
                                return {
                                    so_desc: sos.so_desc,
                                    so_no: sos.so_no,
                                    so_details: sos.so_no + " : " + sos.so_desc,
                                    customer_id: sos.customer_id,
                                    customer_details: sos.customer_id + " : " + sos.customer_name
                                };
                            });
                        },
                        ajax: {
                            global: false,
                            beforeSend: function(xhr)
                            {
                            }
                        }
                    }
                });

                //initialize the bloodhound suggestion engine
                sos_adapt.initialize();

                $('#so_details').typeahead(null, {
                    displayKey: 'so_no',
                    source: sos_adapt.ttAdapter(),
                    minLength: 0,
                    templates: {
                        empty: [
                            '<div class="sug_items">',
                            'unable to find any so#!',
                            '</div>'
                        ].join('\n'),
                        suggestion: Handlebars.compile([
                            '<div class="sug_items"><p class="repo-language">SO# : {{so_no}}</p>',
                            '<p class="repo-name">{{so_desc}}</p></div>'
                        ].join(''))
                    }
                });

这段代码摘自上面的JSFIDLE示例,有人能指导我如何做到这一点吗?任何帮助都将不胜感激。

那么,它能带来什么结果呢?您正在使用远程查询填充结果。在默认焦点上,提供一系列建议或使用
预回迁
method@Edward感谢您的回复,我想要的是猎犬集成,而不是预取方法。我的问题是当焦点上的文本框为空时,不调用远程url请求。但是,当用户在文本框中键入文本时,它会调用。你们明白我的问题是什么吗?我找到了一个类似问题的答案。试试这个链接。[使用typeahead和Brandhound单击显示完整建议列表][1][1]:
$("#so_details").on("click", function() {
                    var ev = $.Event("keydown");
                    ev.keyCode = ev.which = 40;
                    $(this).trigger(ev);
                    return true;
 });