我正在使用上一次推特预订。
var suggestions = new Bloodhound({
datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.value); },
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {url:'/xxx?text=%QUERY',
ajax:{
type : 'post',
dataType : 'json'
}
}
});
suggestions.initialize();
$('.typeahead').typeahead(null, {
displayKey: 'id',
source: suggestions.ttAdapter(),
templates: {
empty: '<p style="width:50%;margin:auto;">No result</p>',
suggestion: function(object){
var str = ['<p>',
object.id,
'</p><a class="btn btn-info btn-small" href="item.html?id="',
object.id,
'>Open</a>'].join('');
return str;
}
}
});
问题是我收到了5个
类型的对象{
id: 0,
field: '',
value: ''
}
所有5个对象都具有相同的ID,因此一个结果的字段,应该放入一个建议。 Typeahead将其视为单独建议,我不想。
如何映射ajax调用的结果,转换它并将结果传递回typeahead?