问题标签 [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.
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 数据。
谢谢!
jquery - 使用远程数据源时,多个数据集无法与 Twitter Typeahead/Bloodhound 一起使用
Twitter Typeahead示例页面展示了如何通过 Typeahead 使用多个数据集。local
这是使用数据源选项的工作示例代码:
如果您通过在页面上输入输入来尝试上述 JSFIDDLE,您将看到两个数据集显示在 typeahead 下拉列表中。
我面临的问题是,如果我将数据源更改为remote
,下拉列表中只会显示第二个数据集。我已经简化了我的remote
代码(实际上是使用 POST 而不是 get 来发送查询),你可以在这里看到它:
如果你尝试这个JSFIDDLE,你会看到只有第二个数据集显示在 typeahead 下拉列表中。如果您在输入输入时查看网络流量,您会看到只发出了一个 AJAX 请求,而它应该是两个(每个数据集一个)。
当我在我的网站上查看网络流量(使用我的真实代码)时,它还显示仅对第二个数据集发出请求。因此,出于某种原因,Typeahead/Bloodhound 仅向第二个数据集发出请求,而不是为每个数据集发出一个请求。它还仅显示第二个数据集的结果(或缺少结果),而不是每个数据集。
remote
使用数据源选项时,为什么多个数据集不起作用?
javascript - 如何为 Bloodhound 遥控器设置额外的 var?
我使用 typeahead/bloodhound 自动填充输入。我的网站有超过 20 个输入字段,所有输入字段都带有类 typeahead 和一个 id 属性。
我的问题是,我需要一个带有 %QUERY 和 %CID 的请求。%QUERY 是用户在输入字段之一中键入的搜索,%CID 应该是来自活动输入字段的 ID。
这是我的代码:
除了 %CID 总是“未定义”外,一切正常。如何用输入字段中的活动/焦点 ID 替换 %CID?
jquery - Typeahead 空白结果 - 不知道为什么
我已经黔驴技穷了。我之前问过一个类似的问题,但现在我正在尝试完全使用 Twitter 示例(遵循http://twitter.github.io/typeahead.js/examples/#multiple-datasets但只有一个数据集)并且无法获得任何工作。
我有一个数据存储的 JSON 文件,看起来像这样(短版)
这是在一个名为stations.json的文件中
我有以下代码,它只会导致没有预先输入的输入字段
我没有收到任何错误,我可以在 console.log 中查看数据,我只是无法让它们被预先输入的内容使用。如果我打开谷歌工具,然后输入 console.log(stations) 我可以看到对象列表。
任何帮助表示赞赏
谢谢
php - 为什么我的预输入结果中未定义?
我正在尝试使用 ajax 调用让这个 typeahead 工作,我很接近但卡住了。
目前,它在下拉列表中返回 5 个“未定义”项目的列表。我尝试将我的 ajax 响应格式化为数组和 json 编码。
我已经测试了响应 ajax 调用的 php 资源,当我加载这个 uri 时:
在我的浏览器中使用搜索词,我得到以下格式的正确结果:
我可以从控制台输出中看到 ajax 调用正在被触发并成功:
HTML:
JavaScript:
感谢您提供的任何帮助。
javascript - Typeahead.js 传输在一段时间后停止触发
我正在使用带有 Bloodhound 远程选项的 Typeahead.js v0.10.4。它按我的预期工作了一段时间,但是按了很多退格键并再次输入只会停止所有功能。我为此做了一个小测试:
http://jsfiddle.net/SubZtep/Lkh68/
知道我做错了什么吗?我试过玩速率限制,但没有帮助。
只是为了记录,我发现了一个类似的问题,但它并没有解决我的问题: https ://github.com/twitter/typeahead.js/issues/149
javascript - 在 Symfony2 中使用 Typeahead + Bloodhound 和 FOSJsRoutingBundle 执行查询
我正在尝试设置 Typeahead + Bloodhound 以在字段上执行搜索并提供建议。该字段的 HTML 代码如下:
我使用 Symfony 的两个主要功能:一个用于返回所有产品并将其用作 a prefetch
,另一个用于过滤后的产品。这是该功能的路线的样子:
正如您所看到的,第一个没有获取任何参数,因为它将所有产品作为 JSON 值返回,但第二个{filter}
作为执行参数LIKE
并仅返回过滤后的产品。
现在我完全不知道 Bloodhound 是如何工作的,所以我阅读了文档,也为了提前阅读文档,并从这里举了一个例子,Remote
并制作了以下代码:
是对的吗?我的意思是,当页面加载时,我会预取所有产品,但如果我在.typeahead
元素上键入任何产品,我只会得到过滤后的产品?我不知道%query
我是否应该将正确的值传递给filter_products
路由以获得过滤后的值。有什么帮助吗?
这是我第一次使用 Typeahead + Bloodhound
javascript - 让 Bloodhound 工作
我正在使用Typeahead.js/Bloodhound在我的网站上实现打字建议功能,但我无法让 Bloodhound 工作。这是代码:
这是indicator.json的一部分:
我期待一些数据,indicator_commands
但它没有显示。我需要改变什么才能让它工作?
javascript - TypeAhead 和 Bloodhound 仅搜索 JSON 数组中的第一个单词
我正在使用 TypeAhead 为文本框提供自动完成结果。但似乎 Bloodhound 或 TypeAhead 仅在我提供的 JSON 数组中找到的第一个单词上进行搜索。
JSON 如下所示:
我正在初始化 TypeAhead,如下所示:
HTML:
Javascript:
我真的很感激任何帮助/指针。
jquery - 当 typeahead Bloodhound 远程返回零结果时如何捕获事件
我正在使用带有 Bloodhound 建议引擎的 twitter typeahead,一切正常。下面是我的代码片段
我想做一些操作,比如显示发布按钮等,当远程服务器返回零结果时,我怎样才能捕捉到这个事件?