Bloodhound如何适应typeahead.js?

时间:2017-12-21 17:39:20

标签: javascript twitter-bootstrap typeahead.js

我正在试图了解Twitters typeahead.js库是如何工作的,但我真的不明白Bloodhound是什么,“建议引擎”除了作为预先输入对象的来源之外还做了什么。

我的一些具体问题是:

  • 什么是查询?什么是基准?
  • ,它们是什么样的,我从哪里获取它们?
  • 为什么我需要对查询和基准进行标记化?
  • 标记化查询和基准会发生什么?

我已经阅读了源代码,但我的Javascript并不是那么先进......文档对我来说真的不清楚,因为它主要是示例,似乎针对那些已经以特定方式实现了预先输入的人

如果有人能够从概念上解释它是如何运作的,我会非常感激。

祝你好运, 约书亚

1 个答案:

答案 0 :(得分:0)

通过 JS Fiddles 详细分步 Typeahead Tutorial @Digital Fortress ,让您开始了解Bloodhound和Typeahead如何协同工作。

以下是教程中关于我推断的少数摘录

  • 什么是查询?查询是用户在文本框中输入的文字
  • 什么是基准?基准是一个建议。 (一个字符串)
  • 为什么我需要对查询和基准进行标记化?标记意味着将字符串转换为较小字符串数组(称为标记)。这样做是为了简化搜索操作。例如,取字符串“hello super man”。您可以通过用空白字符拆分它们将此字符串转换为3个较小的字符串。因此,document.getElementById(questionAnswerProvidedState.QuestionId).setAttribute('disabled', 'true');将变为"hello super man",并且可以轻松搜索以["hello","super","man"]hello和/或super开头/包含的字词。

  • 标记化查询和基准会发生什么? Bloodhound引擎会使用这些建议向用户返回建议。 Bloodhound匹配查询和基准,并将结果作为建议返回给用户。

注意:官方的Typeahead库已经 NOT 收到了3年以上的任何更新(参考github)。但是应该使用积极维护的fork(截至2018年)。

<强> Reference