I typeahead Suche bin die Umsetzung typeahaead.js verwenden, aber als Typ in typeahead searchbox, in Vorschlägen jeweils Aufzeichnungen Dropdown kommt twice.I die Datenquelle geprüft (dh POST api-Aufruf), hat es nur einzigartig records.wo mache ich falsch? Irgendwelche Hilfe oder relevante Verbindungen.doppelte Datensätze in typeahead Suche kommenden
Selbst Kontrolle ist nicht zu dup Detektor.
ähnliche Ausgabe discussed here, aber keine Lösung gibt.
<div id="bloodhound">
<input class="typeahead" type="text" placeholder=" Search">
</div>
<script>
var result = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: 'https://api1.com/idocs/api',
wildcard: '%QUERY',
rateLimitWait: 300 ,
transport: function (opts, onSuccess, onError) {
var url = opts.url;
$.ajax({
url: url,
type: "POST",
success: onSuccess,
error: onError,
});
},
filter: function (data) {
if (data) {
return $.map(data, function (object) {
return data.data.results.data;
});
}
}
},
dupDetector: function (remoteMatch, localMatch) {
return remoteMatch.id === localMatch.id;
}
});
result.initialize();
$('input').typeahead(null, {
name: 'result',
displayKey: 'id',
source: result.ttAdapter(),
templates: {
empty: ['<div>', 'no results found', '</div>'],
suggestion: function (data) {
return '<p>' + data.basicinfo.object_name + '</p>';
}
},
});
Können Sie eine jsbin oder jsfiddle erstellen, um den Fehler zu reproduzieren? Wenn nicht, können Sie Ihren Code umgestalten, um alles Nicht-Wesentliche (Vorlagen, Hinweise, Bindungen usw.) zu entfernen und zu sehen, was passiert? Console.log in Ihrer Filterfunktion, um zu sehen, was es macht? – whipdancer
Setzen Sie eine console.log in die Filterfunktion - Filter: function (data) {console.log (data); if (data) { return $ .Map (Daten, Funktion (Objekt) {console.log (object); console.log (data.data); console.log (data.data.results); console.log (data.data.results.data); return data.data.results.data; }); } } – whipdancer
Die Filterfunktion als du hast es keinen Sinn für mich macht. Sie sollten mit dem Objekt innerhalb der Map-Funktion arbeiten, aber Sie ignorieren es stattdessen für "Daten". – whipdancer