2016-03-29 13 views
0

Typeahead zeigt keine Vorschläge an. Dies ist eine sehr einfache Stadt Lookup. Die Datenbank kehrt in Ordnung zurück. Die Konsole protokolliert meine Eingabe. Kann einfach nicht die Rückkehrdaten zur Anzeige bringen.Typahead zeigt keine Ergebnisse mit Remote-Daten an

remote data 
{"recID":"3699","Name":"Dupage","City":"West Chicago","Country":"United States"} 


html 
<input class="typeahead" type="text" placeholder="Enter City" size="32"> 


script 
<script type="text/javascript">   
var cities = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('City'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    prefetch: 'getAirports.php', 
    remote: { 
    url: 'getAirports.php?query=%QUERY', 
    wildcard: '%QUERY' 
    } 
}); 

$('.typeahead').typeahead({ 
    hint: true, 
    highlight: true, 
    minLength: 1 
}, { 
    name: 'City', 
    display: 'City', 
    source: cities, 
    templates: { 
    suggestion: function (data) { 
     return data.City; 
    } 
} 

}); 
     </script> 
+0

Was passiert, wenn Sie den Prefetch entfernen? – whipdancer

+0

Gleiches Ergebnis. Ich habe auch "query =" ("getAirports.php? Query =") zum Ende des Prefetch hinzugefügt. Immer noch keine Daten zurück. Dies liegt möglicherweise daran, dass das Array ein Schlüsselwert ist. Habe überall nach einer Lösung gesucht. – pcm70

Antwort

0

Die Remotedaten haben kein korrektes Format. Es ist kein gültiges JSON-Objekt. Es ist auch kein gültiges JavaScript-Array. Möglicherweise können Sie es zum Laufen bringen, aber Sie müssen die Daten parsen, die zurückgegeben werden, um ein Objekt oder ein Array zu erstellen. Wenn Ihre Daten als Objekt zurückkamen: {recID:"3699", Name:"Dupage", City:"West Chicago", Country:"United States"}, dann sollte es funktionieren. Sie versuchen gerade, auf ein Objekt data.City zu verweisen, das nicht existiert.