Typeahead:显示所有结果而不是精确的字符串匹配

Typeahead: show ALL results instead of exact string matches

我有一个搜索产品的输入框。它使用 typeahead 来获取和显示返回的数据。

当 ajax 响应包含与我的输入值不完全匹配的结果时,就会出现问题。 例如:

input query = "daffalgane"

JSON data result is = 
{products: 
         { id:100, label: "dafalgan 500" },
         { id:101, label: "dafalgan 750mg" },
         { id:500, label: "daffalgane 600 mg" },
}

Typeahead 仅显示带有 id:500 的那个,因为它具有完全(部分)字符串匹配。

为什么其他结果没有显示? typehead 只显示返回的数据集对我来说更有意义。

供参考,这是用于输入框的配置:

 $('#suggestions').typeahead({
    minLength: 1,
    maxItem: 10,
    hint: false,
    highlight: false,
    emptyTemplate: 'NO RESULTS',
    source:{
        products: {
            display: "label",
            href: baseurl+'{{slug}}',
            url: [{
                type: "POST",
                url: baseurl+'/suggest',
                data: {
                    for: "{{query}}".trim()
                },
            }, "data.products"],

        },
   }});

我通过升级到 typeahead 版本 2.3.4 解决了这个问题 (http://www.runningcoder.org/jquerytypeahead/) 并将过滤器参数设置为 false。

这可以防止对 typeahead 完成的结果进行过滤,而只显示来源。