问题标签 [bloodhound]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
389 浏览

javascript - typeaheadjs & bloodhound binding to id but display value

Basically I am trying to use Bloodhound to parse out an array of json objects but every time I select the suggestion it displays the id field instead of the name field.

enter image description here

0 投票
0 回答
991 浏览

javascript - 如何使用第二个变量过滤 typeahead.js 中的结果?

我正在尝试使用 Typeahead.js 过滤结果。我目前可以使用名为 activity_title 的字段过滤结果。这工作正常。

如何按第二个值过滤我的结果?在这种情况下,我只想选择具有特定活动级别值的结果。我需要在初始化预输入时设置它,而不是将其硬编码到 Bloodhound 初始化中(例如,我不想使用url: 'api/activity/&range=1,3'

我有以下可以远程访问的有效 JSON:

我像这样设置了一个 Bloodhound 实例:

我在键入时使用 Typeahead.js 来查找数据。

这是由 Stackoverflow 和其他人的几个答案拼凑而成的。非常感谢任何帮助。

0 投票
2 回答
6619 浏览

sorting - 使用顶部的确切输入对预先输入的建议进行排序

我使用 Twitter typeahead.js 0.10.5 作为建议引擎。它工作得很好,除了一个例外,我无法按照我想要的方式对建议列表进行排序。

举个例子:

当我输入“需要”时,我确实得到了按数组中位置排序的建议,但我希望它按输入排序,这意味着顺序应该是“需要”、“需要”、“我需要的一切”......当键入“他”应该是“他需要”、“他需要的一切”、“我需要的一切”等。

我知道 Bloodhound 有一个分类器选项,但我不知道如何在这种特殊情况下使用它。

0 投票
1 回答
341 浏览

angularjs - 如何在自定义模板中访问 Typeahead - Bloodhound 建议对象属性

使用 Typeahead-Bloodhound 包,我创建了一个自定义建议模板。我试图弄清楚模板调用什么对象来编译变量。我使用的是下划线而不是 {{}} 模板:

_.compile( '<p><strong><%=PN%></strong> <span class="tt-suggestion-etc"> <%=A2 %>| LAT: <%=Y%> LON: <%=X%></span></p>' )

如果这是标准的 Typeahead 括号:

compile( '<p><strong>{{PN}}</strong> <span class="tt-suggestion-etc"> {{A2}}| LAT: {{Y}} LON: {{X}}</span></p>' )

我希望能够通过下划线中的 javascript 访问实际的对象属性,如下所示:

_.compile( '<p><strong><%=PN%></strong> <span class="tt-suggestion-etc"> <% if(someObj.someProp !== undefined ){ // do something }else{ //do something else } %>| LAT: <%=Y%> LON: <%=X%></span></p>')

0 投票
2 回答
1194 浏览

javascript - typeahead.js 显示所有结果,而不仅仅是匹配结果

我无法让 typeahead.js 仅返回与输入查询匹配的结果。例如,如果我在公司搜索栏中输入“Facebook”,它将返回所有公司(“Yahoo”、“Google”等),即使其中大多数与查询不匹配。我没有对数据进行任何服务器端处理。我的 datumTokenizer 函数应该处理这个过滤吗?

另外,我注意到每次修改查询时,它都会为每个数据输入 filter() 函数。因此,当我将查询从“G”更改为“Go”时,filter: function (companies_list) 中的 console.log() 语句将打印 3000 次。

这是我的代码:

还有一个我的网址返回的例子:

我正在使用远程,因为预取绝对不适合我。它只给了我建议[object Object],这没有任何意义。我想在初始化时使用预取/远程加载整个 .json 文件,而不是向服务器发出任何进一步的请求。所以我认为预取是我更好的选择(小文件,77kB),但它根本不起作用。

非常感谢您的帮助!

0 投票
1 回答
878 浏览

typeahead.js - 在多个地方使用 Bloodhound %QUERY 令牌

我正在使用 在我正在开发的网站上实现一些标记功能。

我正在使用“远程”从我制作的 OData 端点获取数据,并且我正在使用$filter=substringof('%QUERY', Description)url 中的令牌来查找包含用户在标记字段中写入的内容的项目。

在我的数据源中,我返回 3 个属性;Id, Description, ExternalId.
现在我正在搜索结果的唯一属性是,Description但我想搜索ExternalId以及这两个属性显示在建议下拉列表中。

我试过这样做:

我已经使用 Fiddler 检查了请求,它表明只有第一个%QUERY实际更改为搜索文本,而另一个%QUERY没有更改为搜索文本。

有没有办法可以%QUERY在我的网址中多次添加也包括在内ExternalId

0 投票
2 回答
481 浏览

javascript - 如何将 Twitter 的 typeahead.js 与 Microsoft OData API 一起使用?

我在编写 Web 应用程序以从我们的 CRM 应用程序中获取 JSON 数据时遇到了问题。

我想做的是使用Twitter 的 typeahead.js插件从我们的 CRM 应用程序中远程获取客户信息。Microsoft 确实提供了一种使用 JSON 数据进行通信的方法。他们称之为 OData。但是,这看起来不像典型的 JSON 响应。这就是为什么我无法用它设置预输入插件的原因。

当我向 API URL 发送 GET 请求时,我得到以下响应:

那么问题来了: 如何设置 Twitter 的 typeahead 插件以使用这种数据结构?

在显示建议时,我想要Name来自 JSON 响应的值。我想在AccountId选择建议时获取关联的值。

到目前为止,这是我在代码中得到的:

HTML:

JavaScript: (js/global.js)

但是:我的代码不起作用。我得到的只是输入字段下的“未定义”文本。我怀疑我的datumTokenizerdisplayKey引用不正确。我不完全理解datumTokinizer。因此,如果有人可以启发我,我将不胜感激:)

0 投票
2 回答
1354 浏览

javascript - 使用“远程”时,Typeahead 和 Bloodhound 会显示不相关的建议

当使用带有远程选项的 Typeahead/Bloodhound 时,当本地/预取结果低于“限制”(5) 时,显示的建议与输入无关。看起来它只是从结果设置的顶部显示到 5。

照片:“爱”是预期的结果,其他一切都无关:

我的代码:

0 投票
2 回答
1313 浏览

ruby-on-rails - 为什么 typeahead.js/bloodhound 返回“无法读取未定义的属性‘空白’”

我已经将 Twitter Typeahead.js 集成到 Rails 应用程序中已有一段时间了,并且工作正常。

在一系列 gem 更新和一些依赖项移动到 Bower 之后,我现在在控制台中看到一个错误,并且 Typeahead.js 没有被正确调用。

Uncaught TypeError: Cannot read property 'whitespace' of undefined

queryTokenizer: Bloodhound.tokenizers.whitespace

这是什么意思,我该如何调试?

我的完整代码:

json看起来像这样

0 投票
2 回答
1164 浏览

javascript - 无法使用 Typeahead/Bloodhound 查看所有匹配结果

我正在使用 Typeahead/Bloodhoud 进行公司搜索,但自动完成部分没有显示足够的匹配项。

- - - - - 搜索 - - - - -

在此处输入图像描述

我应该看到至少 5 个结果,因为限制是 5。

---------- Ajax 响应 ----------

在此处输入图像描述

预输入 JS

如何确保我的所有结果都按预期显示?我一直在挖掘文档/源代码,寻找我必须忽略的选项,并且一直在努力想出任何选项。