首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Twitter typeahead

Twitter typeahead
EN

Stack Overflow用户
提问于 2013-08-16 02:24:45
回答 1查看 368关注 0票数 0

问题#1:

我有以下代码:

代码语言:javascript
复制
// NOTE: Initiate auto-complete
  $('#edit-keyword').typeahead({
    remote: '/products/autocomplete.json/%QUERY', 
    wildcard: '%QUERY'
  }).bind('typeahead:selected', function(object, datum) {
    console.log(object);
  });

我从服务器返回这个JSON:

代码语言:javascript
复制
1: "Bustello Cafe Coffee Regular"
110: "Barista Prima Coffeehouse Coffee Pods K Cups Darkest Roast French Roast"
713: "Bolthouse Farms Protein Plus Coffee"
5680: "Bustello Cafe Coffee Regular"
5693: "Bustello Cafe Coffee Regular"

我在上面的代码片段中添加了什么来检索与每个数据相关联的ID,现在‘item...right’只返回字符串值。

问题#2:

我刚刚注意到JSON返回多个具有唯一ID的"Bustello Cafe Coffee Regular“,但呈现的下拉列表似乎一次只显示一个-我假设typeahead控件中有一个supress副本?在哪?

亚历克斯

EN

回答 1

Stack Overflow用户

发布于 2013-10-23 21:53:05

如果需要,您可以使用typeahead:selectedtypeahead:autocompleted自定义事件来获取与每个项目相关联的ID,但是您的json需要一个适当的ID属性。例如:

代码语言:javascript
复制
[{"ID":111, "Name":"blah"},{"ID":222, "Name":"buuu"}]

像这样使用jquery和typeahead:

代码语言:javascript
复制
    $("#edit-keyword").on("typeahead:selected typeahead:autocompleted",
        function(e, datum) {
            // datum containts datum.ID here, do what you want with it
            //.. i.e. assign to a hidden input or knockout observable, etc.
        }
    );

至于你的副本的问题,我还没有看到它的配置,typeahead会尝试将你的数据转换成typeahead数据,如果它们还没有的话,所以它可能是typeahead中的_transformDatum函数来做的。

我建议您自己尝试将数据结构化为typeahead数据,以避免发生这种情况,看看会发生什么,查看https://github.com/twitter/typeahead.js#datum了解它们通常是如何结构的,在您的情况下,值将是object,您需要指定适当的valueKey属性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18259175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档