2016-10-13 2 views
0

Ich benutze Bluthund und versuche, die local Option zurückzusetzen. Auf meiner Webseite habe ich eine Situation, in der sich die Vorschlagsdaten ändern, wenn der Benutzer eine von zwei Optionen auswählt. Aber ich kann die Vorschläge nicht bekommen, wenn ich die lokalen Daten einstelle. Unten ist, wie ich die Bluthund Einstellung es schaffen bis ein Array ‚Spray‘ genannt zu verwenden:Bluthund lokale Daten zurücksetzen

var dataSetBloodhound = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'), 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    local: spray 
}); 

Also, wenn der Benutzer jQuery es fängt wählt sprühen und versucht, den Spray-Array auf den lokalen

//If spray is picked 
     if(checked == "Spray") { 
      // Clear the object 
      dataSetBloodhound.clear(); 
      // Set the local 'data' to spray 
      dataSetBloodhound.local = spray; 
      // Reinit the object 
      dataSetBloodhound.initialize() 
      // Prints out the local data.(This prints out the data of spray) 
      console.log(dataSetBloodhound.local); 
      //etc } 
einstellen

Wenn der Benutzer Dünger wählt, ist die Funktion die gleiche wie oben, außer dass ein fertilizer Array übergeben wird. Wenn ich auf der Liste verwende, kann ich sie zur Arbeit bringen, aber ich kann nicht scheinen, die lokalen Daten von Bluthund zu tauschen. Aber nachdem ich initialize() kann ich console.log(dataSetBloodhound.local) und ich kann die Elemente in der Konsole anzeigen, aber wenn ich versuche und einen Vorschlag aus dem Dropdown bekommen funktioniert es nicht. Irgendwelche Ideen?

Antwort

1

Ich glaube, Sie neu zu initialisieren, dann können Sie einstellen

if(checked == "Spray") { 
     // Clear the object 
     dataSetBloodhound.clear(); 
     // Set the local 'data' to spray 
     dataSetBloodhound.local = spray; 
     // Reinit the object 
     dataSetBloodhound.initialize(true); 
     // Prints out the local data.(This prints out the data of spray) 
     console.log(dataSetBloodhound.local); 

Bitte überprüfen Sie die Dokumentation https://github.com/twitter/typeahead.js/blob/master/doc/bloodhound.md

Verwandte Themen