问题标签 [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.
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.
javascript - 如何使用第二个变量过滤 typeahead.js 中的结果?
我正在尝试使用 Typeahead.js 过滤结果。我目前可以使用名为 activity_title 的字段过滤结果。这工作正常。
如何按第二个值过滤我的结果?在这种情况下,我只想选择具有特定活动级别值的结果。我需要在初始化预输入时设置它,而不是将其硬编码到 Bloodhound 初始化中(例如,我不想使用url: 'api/activity/&range=1,3'
)
我有以下可以远程访问的有效 JSON:
我像这样设置了一个 Bloodhound 实例:
我在键入时使用 Typeahead.js 来查找数据。
这是由 Stackoverflow 和其他人的几个答案拼凑而成的。非常感谢任何帮助。
sorting - 使用顶部的确切输入对预先输入的建议进行排序
我使用 Twitter typeahead.js 0.10.5 作为建议引擎。它工作得很好,除了一个例外,我无法按照我想要的方式对建议列表进行排序。
举个例子:
当我输入“需要”时,我确实得到了按数组中位置排序的建议,但我希望它按输入排序,这意味着顺序应该是“需要”、“需要”、“我需要的一切”......当键入“他”应该是“他需要”、“他需要的一切”、“我需要的一切”等。
我知道 Bloodhound 有一个分类器选项,但我不知道如何在这种特殊情况下使用它。
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>')
javascript - typeahead.js 显示所有结果,而不仅仅是匹配结果
我无法让 typeahead.js 仅返回与输入查询匹配的结果。例如,如果我在公司搜索栏中输入“Facebook”,它将返回所有公司(“Yahoo”、“Google”等),即使其中大多数与查询不匹配。我没有对数据进行任何服务器端处理。我的 datumTokenizer 函数应该处理这个过滤吗?
另外,我注意到每次修改查询时,它都会为每个数据输入 filter() 函数。因此,当我将查询从“G”更改为“Go”时,filter: function (companies_list) 中的 console.log() 语句将打印 3000 次。
这是我的代码:
还有一个我的网址返回的例子:
我正在使用远程,因为预取绝对不适合我。它只给了我建议[object Object],这没有任何意义。我想在初始化时使用预取/远程加载整个 .json 文件,而不是向服务器发出任何进一步的请求。所以我认为预取是我更好的选择(小文件,77kB),但它根本不起作用。
非常感谢您的帮助!
typeahead.js - 在多个地方使用 Bloodhound %QUERY 令牌
我正在使用bootstrap-tags-input typeahead.js和Bloodhound在我正在开发的网站上实现一些标记功能。
我正在使用“远程”从我制作的 OData 端点获取数据,并且我正在使用$filter=substringof('%QUERY', Description)
url 中的令牌来查找包含用户在标记字段中写入的内容的项目。
在我的数据源中,我返回 3 个属性;Id
, Description
, ExternalId
.
现在我正在搜索结果的唯一属性是,Description
但我想搜索ExternalId
以及这两个属性显示在建议下拉列表中。
我试过这样做:
我已经使用 Fiddler 检查了请求,它表明只有第一个%QUERY
实际更改为搜索文本,而另一个%QUERY
没有更改为搜索文本。
有没有办法可以%QUERY
在我的网址中多次添加也包括在内ExternalId
?
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)
但是:我的代码不起作用。我得到的只是输入字段下的“未定义”文本。我怀疑我的datumTokenizer
或displayKey
引用不正确。我不完全理解datumTokinizer
。因此,如果有人可以启发我,我将不胜感激:)
javascript - 使用“远程”时,Typeahead 和 Bloodhound 会显示不相关的建议
当使用带有远程选项的 Typeahead/Bloodhound 时,当本地/预取结果低于“限制”(5) 时,显示的建议与输入无关。看起来它只是从结果设置的顶部显示到 5。
照片:“爱”是预期的结果,其他一切都无关:
我的代码:
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看起来像这样
javascript - 无法使用 Typeahead/Bloodhound 查看所有匹配结果
我正在使用 Typeahead/Bloodhoud 进行公司搜索,但自动完成部分没有显示足够的匹配项。
- - - - - 搜索 - - - - -
我应该看到至少 5 个结果,因为限制是 5。
---------- Ajax 响应 ----------
预输入 JS
如何确保我的所有结果都按预期显示?我一直在挖掘文档/源代码,寻找我必须忽略的选项,并且一直在努力想出任何选项。