我正在使用twitter的typeahead.js。当我使用remote来获取json时,它会显示json的前5个字符串,而不管我在文本框中输入的字符。
这是配置
$("#search").typeahead({
name: 'categories',
cache: false,
remote: 'http://localhost:3000/api/v1/charts/sales/categories?chart_token=atoken',
valueKey: 'name'
});
上面的url在json
之后返回[{"id":"22","name":"PC"},{"id":"185","name":"XBOX 360"},{"id":"31","name":"Keräilykortti"},{"id":"34","name":"Manga + Kirjat"},{"id":"3","name":"DVD-elokuvat"},{"id":"202","name":"Wii"},{"id":"552","name":"Wii U"},{"id":"431","name":"Laitteet"},{"id":"535","name":"Nintendo 3DS"},{"id":"167","name":"Nintendo DS"},{"id":"206","name":"PlayStation 3"},{"id":"172","name":"PSP"},{"id":"26","name":"PlayStation 2"},{"id":"532","name":"PS Vita"},{"id":"25","name":"Xbox"},{"id":"241","name":"BLU-RAY-elokuvat"},{"id":"178","name":"Erikoistuotteet"},{"id":"30","name":"Games Workshop"},{"id":"328","name":"Flames of War"},{"id":"513","name":"Muut miniatyyripelit"},{"id":"32","name":"Roolipelit"},{"id":"33","name":"Lautapelit"}]
如果我将local
与json而不是remote
一起使用,则效果非常好。
知道我在这里缺少什么吗?
答案 0 :(得分:1)
通过指定prefetch
而不是remote
来解决问题。所以下面的配置工作
$("#search").typeahead({
name: 'categories',
cache: false,
prefetch: 'http://localhost:3000/api/v1/charts/sales/categories?chart_token=atoken',
valueKey: 'name'
});
prefetch
- 预取数据并将其存储在localStorage
remote
- 当预取数据不足时,typeahead使用此来源获取更多数据以获取建议