Javascript 带远程阵列的Twitter typeahead.js
我想使用twtter的typeahead来显示一些输入建议。 建议将来自服务器,因此我需要使用远程表单: 但是远程示例都返回json。 因为我将有一个相当大的数据集,并且我想将它存储在Redis中,所以我想我不会将数据存储在json中,而是存储在一个值数组中。为了节省内存 我还没有谈到Redis,只是想返回一个数组。但我只是有一堆未定义的选项可供选择 如有任何迹象,将不胜感激 我很正常。假设我将从服务器返回render:text=>[abc,sdf,erw,gfg], 我如何使typeahead显示基于该响应的建议 这是我想采用数组而不是json的示例:Javascript 带远程阵列的Twitter typeahead.js,javascript,ruby-on-rails,typeahead.js,Javascript,Ruby On Rails,Typeahead.js,我想使用twtter的typeahead来显示一些输入建议。 建议将来自服务器,因此我需要使用远程表单: 但是远程示例都返回json。 因为我将有一个相当大的数据集,并且我想将它存储在Redis中,所以我想我不会将数据存储在json中,而是存储在一个值数组中。为了节省内存 我还没有谈到Redis,只是想返回一个数组。但我只是有一堆未定义的选项可供选择 如有任何迹象,将不胜感激 我很正常。假设我将从服务器返回render:text=>[abc,sdf,erw,gfg], 我如何使typeahea
var bestPictures = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
prefetch: '../data/films/post_1960.json',
remote: '../data/films/queries/%QUERY.json'
});
bestPictures.initialize();
$('#remote .typeahead').typeahead(null, {
name: 'best-pictures',
displayKey: 'value',
source: bestPictures.ttAdapter()
});
谢谢。我自己回答
<script type="text/javascript">
$(function() {
var xx = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace("user"),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/home/cp?c=%QUERY',
filter: function(list) {
console.log(list)
return $.map(list, function(name) { return { user: name}; });
}
}
});
xx.initialize();
$('#remote .typeahead').typeahead(null, {
name: 'xx',
displayKey: 'user',
source: xx.ttAdapter()
});
})
</script>
<div id="remote" style="text-align:center; margin-top: 200px;">
<input class="typeahead" type="text">
</div>
因此,从控制器返回呈现json:%w[foo bar]将显示可用选项