无法获得Twitter Typeahead.js,远程版本可以使用。我得到了#34;未定义"我的建议。任何帮助将不胜感激。
以下代码:
JS:
var films = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: '../widgets/films.json'
});
films.initialize();
$('#films .typeahead').typeahead(null, {
name: 'films',
displayKey: 'value',
source: films.ttAdapter()
});
答案 0 :(得分:5)
Bloodhound建议引擎无法在JSON数组中找到显示键“value”。
您需要将JSON数组转换为JavaScript对象数组。 JavaScript对象有一个名为“value”的变量,它有一个电影标题作为其值;正是这个“值”变量被显示键使用,例如
remote: {
url: '../widgets/films.json',
filter: function (films) {
// $.map converts the JSON array into a JavaScript array
return $.map(films.results, function (film) {
return {
// NB : replace original_title below with your JSON film key
value: film.original_title
};
});
}
}
如果你包含了films.json输出的样本(因为我可以使用你需要的确切值),可以改进上面的例子。
有关扩展示例和jsfiddle,请参阅this答案。