所以我试图使用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,它们完美无瑕地工作。非常感谢任何帮助。
答案 0 :(得分:1)
竞争条件 - 您只需要在ajax请求成功后应用预先调用。
将最后一个块放在成功函数中,你应该很好。