3

我希望 typeahead.js 在如何匹配项目方面表现得像 jqueryui 自动完成。使用 jqueryui 自动完成可以在文本项中进行搜索。在预先输入中,它仅从字符串的开头开始。

自动完成示例:http: //goo.gl/O43afF

提前输入示例:http: //twitter.github.io/typeahead.js/examples/

使用自动完成功能,似乎可以分配一个比较功能,但我在预先输入的内容中没有找到类似的东西。

如果我有一个包含项目“马术(马)”的列表,那么如果我开始写“o”,我想得到一个匹配项。

4

2 回答 2

2

正如您正确地说的那样,Typeahead.js 代码将查找前缀匹配。但是有一个“技巧”:每个数据也可能包含一个tokens元素,正如 Typeahead 文档所说,它是“帮助 typeahead.js 将数据与给定查询匹配的字符串集合”。

前缀匹配是针对tokens. 如果您没有tokens为其中一个数据提供值,则它的值会为您标记化(空格分隔)。但是,你可以提供tokens得到你想要的东西。例如,在您的情况下,您将提供一个值,tokens即查询字符串中所有单词的所有唯一子字符串。

我建议“所有长度> = 2的唯一子字符串”,顺便说一句。

于 2013-08-05T04:37:58.483 回答
0

typeahead 的数据源是通过 'source' 参数设置的。因此,在其中放置另一种方法而不是数组是完全可以的。另请注意,它在内部需要一个字符串数组,因此您必须将所有内容格式化为字符串。

以this fiddle为例

编辑:这个例子现在总是生成从测试 0 到测试 9 的值,所以你当然只能通过输入“测试”的部分来检查

于 2013-08-04T21:29:34.437 回答