Twitters Typeahead corrisponde a qualsiasi parola in una frase, quindi per una ricerca di risultati "auto" può provenire da una frase con una seconda parola che corrisponde a "auto". Ad esempio quando si cerca l'auto in una lista con un biglietto da visita. Il biglietto da visita appare e, peggio ancora, compare prima dell'auto. IE:Come creare parole e frasi esatte di Twitter Typeahead
Search Term: Car
Suggestions:
Business Card
Car
Car Pool
Carbon
voglio che sia più Google e Twitter come (non hanno mai suggeriscono qualcosa che non corrisponde esattamente ciò che viene digitato dall'inizio) dove la parola digitata è il più rilevante, in modo da auto sarebbe più rilevante quando si digita auto rispetto a Business Card.
Voglio che in realtà basta ARRESTARE la seconda parola finché qualcuno non digita uno spazio e inizia una seconda parola. Quindi, nell'esempio biglietto da visita di cui sopra non sarebbe apparso nella lista a meno che non ho digitato:
Business C
Come posso fermare questo comportamento di corrispondenza e suggerendo parole che non sono una corrispondenza esatta dall'inizio della ricerca digitato.
Un altro modo per dire questo sarebbe come fermare il typeahead da tokenizing o splitting nello spazio. Il typeahead corrisponde sempre dall'inizio di una parola (^), quindi se lo spazio non fosse riconosciuto come un limite di parole, funzionerebbe di più come gli utenti di Google e dei twitters si aspetterebbero.
Grazie per qualsiasi aiuto, Tyler
AGGIORNAMENTO 1.
ho aggiornato il mio set di dati per restituire un dato che ha un valore di token e in modo che il metodo typeahead _transformDatum non tokenize i gettoni, dividendo su Uno spazio. Questa grande opera e ora funziona come desiderato:
Valori: Apple, Great Ape
Termine di ricerca: Ap Suggerimenti: di Apple
Questo è quello che voglio. Ma ora c'è un nuovo problema.
PROBLEMA: quando si utilizza un termine di ricerca con uno spazio non vengono restituiti suggerimenti.
Così ora quando si digita "grandi" i suggerimenti fermano non appena si digita una spazio .:
termine di ricerca: Grande (con uno spazio) suggerimenti: (nessuno)
I Sto pensando che i token NON possono avere spazi. Anche se la documentazione non lo dice esplicitamente in un problema:
La forma canonica di un dato è un oggetto con una proprietà di valore e un gettoni di proprietà. value è la stringa che rappresenta il valore sottostante del datum e token è una raccolta di stringhe che supportano typeahead.js nei datum corrispondenti con una determinata query.
ho risolto il problema di spazio si modifica il metodo 'getSuggestion' (https://github.com/twitter/typeahead js/blob/master/src/dataset.js # L251). Ho rimosso la chiamata a 'tokenizeQuery' semplicemente applicando' toLowerCase() 'alla query. – franzlorenzon