Twitter Typeahead搜索逗号分隔的值

时间:2019-08-26 15:54:13

标签: javascript json csv split typeahead.js

我正在使用typeahead v0.11.1,这一切似乎在一件事上是分开的。

我正在搜索JSON数据集,其片段可在下面看到;

SELECT *
FROM Countries co LEFT JOIN
     (SELECT ci.Country as id,
             SUM(ci.Population) as pop,
             SUM(ci.Natives) as native
      FROM Cities ci 
      GROUP BY ci.Country
     ) ci
     USING (id);

我遇到的问题是[ { "last_name": "Jo", "first_name": "Smith", "location": "Plum,Newton" }, { "last_name": "Sara", "first_name": "Gates", "location": "Bread" } ] 值。如果location包含逗号分隔的值列表,则仅第一个是可搜索/可发现的。

这些是某些搜索的结果;

  • 搜索location>会发现plu
  • 搜索Plum,Newton> new

我是否需要一些自定义函数来分割逗号分隔的值?我以前从未见过这样做,但是我知道可以使用函数进行override the source选项-不确定这是否是我需要的吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

https://dotnetfiddle.net/qMDjF5

我继续写了一个小提琴来解析位置,并允许提前输入以逗号分隔的值工作。

覆盖源选项将不起作用,因为我们需要拆分值。

https://dotnetfiddle.net/qMDjF5

答案 1 :(得分:0)

https://dotnetfiddle.net/qMDjF5

我去https://twitter.github.io/typeahead.js/examples/,然后下载了链接typeahead.js jQuery插件。在jquery链接之后,我将typeahead.bundle.min.js复制到了项目的脚本文件夹中。

<script src="https://code.jquery.com/jquery-1.12.4.min.js"
        integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
        crossorigin="anonymous"></script>
<script src="~/Scripts/typeahead.bundle.min.js"></script>

然后,将代码放在第一个示例中的脚本标签内,将阿拉巴马州的状态更改为“阿拉巴马州,阿拉米尼亚”,然后我的输入将两个名字都用逗号分隔。

<script type="text/javascript">
    $(function () {
        var substringMatcher = function (strs) ...

        var states = ['Alabama,Aliminia',...

    })
</script>