使用预取JSON的Twitter Typeahead

时间:2014-02-27 21:17:37

标签: javascript jquery ruby-on-rails json bootstrap-typeahead

所以我试图使用Twitter的Typeahead自动完成库。我预取了一些我拥有的JSON数据,然后将我需要的信息放入一个数组中。我的代码可以在下面看到:

var test = new Bloodhound({
    datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },
    queryTokenizer: Bloodhound.tokenizers.whitespace,
    limit: 10,
    prefetch: {
    url: 'http://localhost:3000/suggestions',
      filter: function(list) {
        nameArray = [];
        for( var i = 0; i < list.length; ++i){
          nameArray.push(list[i].name);
        }
        window.alert(nameArray)
        return nameArray;
      }
    }
});

test.initialize();

$('.example-test .typeahead').typeahead(null, {
    name: 'test',
    source: test.ttAdapter()
});

我使用警报来确保数组是我想要的,这只是一个字符串数组。

上面的代码似乎没有产生任何东西。我没有自动完成功能。数组是正确生成的,所以我不确定是什么问题。我使用Twitter提供的示例测试了我的HTML和CSS,它们完美无瑕地工作。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

竞争条件 - 您只需要在ajax请求成功后应用预先调用。

将最后一个块放在成功函数中,你应该很好。