问题标签 [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 投票
2 回答
12689 浏览

jquery - Typeahead v0.10.2 和 Bloodhound - 使用嵌套的 JSON 对象

更新

根据@BenSmith ( https://stackoverflow.com/users/203371/BenSmith ) 的正确答案,我能够找到我的问题,并发现我没有正确浏览我的 JSON 层次结构。这是工作代码:

感谢@BenSmith 的帮助!


原始问题

我是使用 Typeahead 和 Bloodhound 的新手。该文档不是很有帮助。我有一组从我正在使用的 API 返回的 JSON 对象。我试图弄清楚如何浏览我的 JSON 对象,以便 Bloodhound 可以理解它们。

这里的目标是用户将开始输入歌曲名称。然后,自动完成将显示歌曲名称列表和演唱者。

例如:Mastodon 的午夜钟声

我正在使用每个库的最新版本: https ://twitter.github.io/typeahead.js/

示例 JSON (SampleData.json):

使用此站点http://json.parser.online.fr/轻松格式化 JSON。

我将返回的 JSON 将始终采用相同的格式,但包含不同的数据。在此示例中,“曲目”为空。其他结果会有数据。我还需要能够访问该数据。

我正在使用最新版本的 JQuery。这是我在我的 html 页面中包含的内容:

这是HTML:

这是脚本:

当我尝试运行此代码时,出现以下错误:

未捕获的类型错误:无法读取未定义的属性“令牌”

任何帮助或指导将不胜感激。我只需要知道如何获取我正在使用 Typeahead/Bloodhound 的 JSON 数据。

谢谢!

0 投票
1 回答
2766 浏览

jquery - 使用远程数据源时,多个数据集无法与 Twitter Typeahead/Bloodhound 一起使用

Twitter Typeahead示例页面展示了如何通过 Typeahead 使用多个数据集。local这是使用数据源选项的工作示例代码:

JSFIDDLE

如果您通过在页面上输入输入来尝试上述 JSFIDDLE,您将看到两个数据集显示在 typeahead 下拉列表中。

我面临的问题是,如果我将数据源更改为remote,下拉列表中只会显示第二个数据集。我已经简化了我的remote代码(实际上是使用 POST 而不是 get 来发送查询),你可以在这里看到它:

JSFIDDLE

如果你尝试这个JSFIDDLE,你会看到只有第二个数据集显示在 typeahead 下拉列表中。如果您在输入输入时查看网络流量,您会看到只发出了一个 AJAX 请求,而它应该是两个(每个数据集一个)。

当我在我的网站上查看网络流量(使用我的真实代码)时,它还显示仅对第二个数据集发出请求。因此,出于某种原因,Typeahead/Bloodhound 仅向第二个数据集发出请求,而不是为每个数据集发出一个请求。它还仅显示第二个数据集的结果(或缺少结果),而不是每个数据集。

remote使用数据源选项时,为什么多个数据集不起作用?

0 投票
1 回答
2362 浏览

javascript - 如何为 Bloodhound 遥控器设置额外的 var?

我使用 typeahead/bloodhound 自动填充输入。我的网站有超过 20 个输入字段,所有输入字段都带有类 typeahead 和一个 id 属性。

我的问题是,我需要一个带有 %QUERY 和 %CID 的请求。%QUERY 是用户在输入字段之一中键入的搜索,%CID 应该是来自活动输入字段的 ID。

这是我的代码:

除了 %CID 总是“未定义”外,一切正常。如何用输入字段中的活动/焦点 ID 替换 %CID?

0 投票
1 回答
2628 浏览

jquery - Typeahead 空白结果 - 不知道为什么

我已经黔驴技穷了。我之前问过一个类似的问题,但现在我正在尝试完全使用 Twitter 示例(遵循http://twitter.github.io/typeahead.js/examples/#multiple-datasets但只有一个数据集)并且无法获得任何工作。

我有一个数据存储的 JSON 文件,看起来像这样(短版)

这是在一个名为stations.json的文件中

我有以下代码,它只会导致没有预先输入的输入字段

我没有收到任何错误,我可以在 console.log 中查看数据,我只是无法让它们被预先输入的内容使用。如果我打开谷歌工具,然后输入 console.log(stations) 我可以看到对象列表。

任何帮助表示赞赏

谢谢

0 投票
1 回答
567 浏览

php - 为什么我的预输入结果中未定义?

我正在尝试使用 ajax 调用让这个 typeahead 工作,我很接近但卡住了。

目前,它在下拉列表中返回 5 个“未定义”项目的列表。我尝试将我的 ajax 响应格式化为数组和 json 编码。

我已经测试了响应 ajax 调用的 php 资源,当我加载这个 uri 时:

在我的浏览器中使用搜索词,我得到以下格式的正确结果:

我可以从控制台输出中看到 ajax 调用正在被触发并成功:

HTML:

JavaScript:

感谢您提供的任何帮助。

0 投票
0 回答
361 浏览

javascript - Typeahead.js 传输在一段时间后停止触发

我正在使用带有 Bloodhound 远程选项的 Typeahead.js v0.10.4。它按我的预期工作了一段时间,但是按了很多退格键并再次输入只会停止所有功能。我为此做了一个小测试:

http://jsfiddle.net/SubZtep/Lkh68/

知道我做错了什么吗?我试过玩速率限制,但没有帮助。

只是为了记录,我发现了一个类似的问题,但它并没有解决我的问题: https ://github.com/twitter/typeahead.js/issues/149

0 投票
1 回答
1435 浏览

javascript - 在 Symfony2 中使用 Typeahead + Bloodhound 和 FOSJsRoutingBundle 执行查询

我正在尝试设置 Typeahead + Bloodhound 以在字段上执行搜索并提供建议。该字段的 HTML 代码如下:

我使用 Symfony 的两个主要功能:一个用于返回所有产品并将其用作 a prefetch,另一个用于过滤后的产品。这是该功能的路线的样子:

正如您所看到的,第一个没有获取任何参数,因为它将所有产品作为 JSON 值返回,但第二个{filter}作为执行参数LIKE并仅返回过滤后的产品。

现在我完全不知道 Bloodhound 是如何工作的,所以我阅读了文档,也为了提前阅读文档,并从这里举了一个例子,Remote并制作了以下代码:

是对的吗?我的意思是,当页面加载时,我会预取所有产品,但如果我在.typeahead元素上键入任何产品,我只会得到过滤后的产品?我不知道%query我是否应该将正确的值传递给filter_products路由以获得过滤后的值。有什么帮助吗?

这是我第一次使用 Typeahead + Bloodhound

0 投票
1 回答
251 浏览

javascript - 让 Bloodhound 工作

我正在使用Typeahead.js/Bloodhound在我的网站上实现打字建议功能,但我无法让 Bloodhound 工作。这是代码:

这是indicator.json的一部分:

我期待一些数据,indicator_commands但它没有显示。我需要改变什么才能让它工作?

0 投票
1 回答
1816 浏览

javascript - TypeAhead 和 Bloodhound 仅搜索 JSON 数组中的第一个单词

我正在使用 TypeAhead 为文本框提供自动完成结果。但似乎 Bloodhound 或 TypeAhead 仅在我提供的 JSON 数组中找到的第一个单词上进行搜索。

JSON 如下所示:

我正在初始化 TypeAhead,如下所示:

HTML:

Javascript:

我真的很感激任何帮助/指针。

0 投票
2 回答
1930 浏览

jquery - 当 typeahead Bloodhound 远程返回零结果时如何捕获事件

我正在使用带有 Bloodhound 建议引擎的 twitter typeahead,一切正常。下面是我的代码片段

我想做一些操作,比如显示发布按钮等,当远程服务器返回零结果时,我怎样才能捕捉到这个事件?