我在使用带有对象数组的Twitter Typehead时遇到问题。
请在此处查看JSBin http://jsbin.com/buyudaq/edit?html,js,console,output
以下是序列化对象数组
var phoneNumbers =
{
"data": [
{
"phone": "+1 (923) 562-3211"
},
{
"phone": "+1 (924) 431-3216"
},
{
"phone": "+1 (932) 411-2223"
},
{
"phone": "+1 (857) 584-3623"
},
{
"phone": "+1 (914) 472-3779"
},
{
"phone": "+1 (876) 554-3637"
},
{
"phone": "+1 (916) 537-3873"
}
]
};
答案 0 :(得分:0)
我修改了你的代码,而不是传递一个对象,将一个数组传递给' local'选项应该做的工作。 由于您的源是一个对象数组,因此最好通过添加' display'来指定要显示的属性值。选项。
var phones = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('phone'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
identify: function(obj) { return obj.phone; },
local: phoneNumbers.data });
$('.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 1 },{
name: 'phones',
source: phones,
display: 'phone' });