Ich versuche, twitter typeahead in mein Projekt zu implementieren, da ich als Quelle remote bin. Ich bin in der Lage, die Verbindung zwischen dem Front-End-Abfragetext und dem SQL herzustellen. Die Rückantwort sieht wie folgt aus:Anzeige des Namens und Auswahl der ID bei der Auswahl für Twitter Typeahead
[
{
id: 1,
name: 'user one'
},
{
id: 2,
name: 'user two'
}
..
]
Die typeahead zeigt die Übereinstimmungen ergeben aber es enthält die ID zusammen mit den Namen in der Auswahl, anstatt nur den Namen. Zweitens möchte ich den ID-Wert auf select bekommen, aber das: select gibt immer den Namen-Wert anstelle der ID an.
hier ist mein Code:
var source = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url:"{{ path('user_typeahead') }}"+'?string=%QUERY', // twig path
wildcard: '%QUERY',
filter: function (results) {
// Map the remote source JSON array to a JavaScript object array
return $.map(results, function (result) {
return {
value: result
};
});
}
}
});
// Initialize the Bloodhound suggestion engine
source.initialize();
$('#typeahead').typeahead(null, {
display: 'value',
source: source.ttAdapter(),
limit:5,
highlight: true,
hint: true
});
$('#typeahead').bind('typeahead:select', function(ev, suggestion) {
console.log(suggestion);
});