Typeahead.js只提供前5个结果?

时间:2017-03-13 12:35:28

标签: javascript jquery json typeahead.js bloodhound

我想在我的json文件中仅在字段"值"中搜索,但我只得到前5个结果。无论输入什么,每次都有相同的结果。

我的代码是:

$(function() {

      var search_url = 'https://twitter.github.io/typeahead.js/data/films/post_1960.json';
      var search_input = $("#prefetch input.typeahead");

      var search = new Bloodhound({
        datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
        queryTokenizer: Bloodhound.tokenizers.whitespace,
        prefetch: search_url,
        remote: {
          url: search_url + '?%QUERY.json',
          wildcard: '%QUERY'
        }
      });

      $('#prefetch .typeahead').typeahead(null, {
        name: 'search',
        display: 'value',
        displayKey: 'value',
        source: search.ttAdapter()
      });

    }); 

JSON结构:

[{
    "year": "1961",
    "value": "West Side Story",
    "tokens": [
      "West",
      "Side",
      "Story"
    ]
  },
  {
    "year": "1962",
    "value": "Lawrence of Arabia",
    "tokens": [
      "Lawrence",
      "of",
      "Arabia"
    ]
  },
  {
    "year": "1963",
    "value": "Tom Jones",
    "tokens": [
      "Tom",
      "Jones"
    ]
  }]

这里也是JSFiddle示例。

可以让它运作吗?

1 个答案:

答案 0 :(得分:0)

您正在使用错误的网址进行搜索。来自http://twitter.github.io/typeahead.js/examples/

remote: {
  url: '../data/films/queries/%QUERY.json',
  wildcard: '%QUERY'
}

变化

url: search_url + '?%QUERY.json',

url: 'https://twitter.github.io/typeahead.js/data/films/queries/%QUERY.json'