Twitter typeahead 0.1 w / bloodhound - 无法使用URL进行预取

时间:2014-02-26 00:28:42

标签: javascript typeahead.js twitter-typeahead bloodhound

我在JS中使用了这个代码非常好。

  var values = new Bloodhound({
      datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },
      queryTokenizer: Bloodhound.tokenizers.whitespace,
      remote: '/url/that/returns/json'
   });

但是,由于我只需要这一次,我将其更改为预取,如下所示:

  var values = new Bloodhound({
      datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.num); },
      queryTokenizer: Bloodhound.tokenizers.whitespace,
      prefetch: {url: '/url/that/returns/json'}
   });

这会在typeahead.js中导致错误(“TypeError:a is undefined”)。我需要更改什么才能使此功能正常工作?

编辑:如果我在浏览器中访问URL,则返回的json是:

[{ “名称”: “MYNAME”, “ID”: “100”, “代码”: “CODE”}]

1 个答案:

答案 0 :(得分:2)

这是因为我的datumTokenizer正在寻找名为num:

的字段
... return Bloodhound.tokenizers.whitespace(d.num)

但我的JSON中没有这样的字段。我不知道为什么这对远程工作,但它在预取中不起作用。然后修复了用d.name。

替换d.num