私は最後のツイッターのタイプアヘッドを使用しています。
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 を持っているため、1 つの結果のフィールドであり、1つの提案に入れる必要があります。Typeahead はそれらを私が望まない個別の提案として扱います。
ajax 呼び出しの結果をマッピングして変換し、結果を先行入力に渡すにはどうすればよいですか?