Javascript TwitterTypeahead默认建议:如何获取预取数组中的第一个建议?

Javascript TwitterTypeahead默认建议:如何获取预取数组中的第一个建议?,javascript,twitter-typeahead,Javascript,Twitter Typeahead,我正在使用Twitter Typeahead,我想在输入框获得焦点时,在输入任何内容之前,向用户提供一些值 默认建议下面有一个例子: var nflTeams = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('team'), queryTokenizer: Bloodhound.tokenizers.whitespace, identify: function(obj) { return

我正在使用Twitter Typeahead,我想在输入框获得焦点时,在输入任何内容之前,向用户提供一些值

默认建议下面有一个例子:

var nflTeams = new Bloodhound({
  datumTokenizer: Bloodhound.tokenizers.obj.whitespace('team'),
  queryTokenizer: Bloodhound.tokenizers.whitespace,
  identify: function(obj) { return obj.team; },
  prefetch: '../data/nfl.json'
});

function nflTeamsWithDefaults(q, sync) {
  if (q === '') {
    sync(nflTeams.get('Detroit Lions', 'Green Bay Packers', 'Chicago Bears'));
  }

  else {
    nflTeams.search(q, sync);
  }
}

$('#default-suggestions .typeahead').typeahead({
  minLength: 0,
  highlight: true
},
{
  name: 'nfl-teams',
  display: 'team',
  source: nflTeamsWithDefaults
});
然而,在本例中,他们硬编码了想要建议的值:

      sync(nflTeams.get('Detroit Lions', 'Green Bay Packers', 'Chicago Bears'));
在我的例子中,我使用带预取的侦探犬,我想建议预取返回的前几个选项

编辑: 我想展示的是服务器返回的前几个项目。服务器将负责显示它们的顺序。因此,在上面的示例中,如果data/nfl.json包含:

[
{ "team": "San Francisco 49ers" },
{ "team": "Chicago Bears" },
{ "team": "Cincinnati Bengals" },
{ "team": "Buffalo Bills" },
{ "team": "Denver Broncos" },
{ "team": "Cleveland Browns" },
...
我只想展示第一批球队的实力。显示的团队数量可能是一个参数


我该怎么做

例如,您希望在默认情况下显示前两项

function nflTeamsWithDefaults(q, sync) {
    if (q === '') {
        sync(nflTeams.all().slice(0, 2)); // slice(start,end)
    }
    else {
        nflTeams.search(q, sync);
    }
}

当您说出前几个选项时,您将如何确定有多少个选项和哪几个选项?你能说得更具体一点吗?服务器正在给我发送一个数组。我可以使用数组中的n个首项(比如6个或10个首项)。排序将由服务器决定。问题是hep的数据源是“猎犬”。因此没有“来源:nflTeamsWithDefaults”(据我所知)。它应该是
源代码:nflTeams.ttAdapter()
。而且无法使用
nflTeamsWithDefaults
进行查询。