2017-04-26 2 views
0

Das Problem bei der Hand Bestellung ist, dass die Suchvorschläge werden nicht von gleichen Startzeichen bestellt, wie auf dem Bild zu sehen: 'ne' should be at the very top, yet it is at the very bottomTwitters typeahead Vorschläge

Wie kann ich dieses Problem beheben?

Das folgende ist mein code` $ (document) .ready (function() { // var Anfragen = Bank;

var queries = ['there is no need', 'need', 'no need', 'ne']; 

//Dataset defined in index.php 
// ***** 
//(NOTE: Typehead works by the order of the elements in dataset, thus 
//   they are ordered in the database first based on count) 

//Constructing the suggestion engine 
var queries = new Bloodhound(
    { 
     datumTokenizer: Bloodhound.tokenizers.whitespace, 
     queryTokenizer: Bloodhound.tokenizers.whitespace, 
     local: queries 
    }); 

// Initializing the typeahead (.typehead is the selector having what's currently 
//         being typed) 
$('.typeahead').typeahead(
    { 
     hint: true, 
     highlight: true, /* Enable substring highlighting */ 
     minLength: 1 /* Specify minimum characters required for showing result */ 
    }, 
    { 
     name: 'queries', 
     source: queries 
    }); 

}); `

Antwort

0

Wenn die sorter Eigenschaft mit einer Funktion initialisiert wird, wird Bloodhound es verwenden, um die abgestimmten Einträge zu bestellen, wie unten:

var queries = new Bloodhound(
{ 
    datumTokenizer: Bloodhound.tokenizers.whitespace, 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    local: queries, 
    sorter: function(a, b) { 
     if (a < b) { 
      return -1; 
     } 
     else if (a > b) { 
      return 1; 
     } 
     else return 0; 
    } 
}); 

Also, nur die Initialisierung von Bloodhound erweitern, und Sie sind gut zu gehen .