Comment lier le type de texte angi-ui avec un serveur via $ http pour l’optimisation côté serveur?

L’exemple de tête de texte ( http://angular-ui.github.io/bootstrap/#/typeahead ) mentionne qu’il est facile d’implémenter un back-end dans cette saisie semi-automatique, mais ne fournit aucun exemple. Ce qui m’intéresse en particulier, c’est de trouver la chaîne actuellement saisie afin que je puisse l’envoyer au serveur et renvoyer un résultat déjà filtré – je voudrais faire cette optimisation côté serveur et minimiser mes requêtes, je ne pense pas y retourner l’ensemble de résultats et l’exclusion des éléments non correspondants pour l’affichage sont possibles pour une application qui contient plus de 200 000 entrées dans la firebase database.

Dois-je, dans ce cas, oublier complètement typeahead et implémenter une solution personnalisée avec une liste déroulante, ou existe-t-il un moyen de le faire facilement?

Il y a un moyen de l’implémenter très facilement, pas besoin de déployer votre solution personnalisée (du moins pas pour ce cas!). Fondamentalement, vous pouvez utiliser n’importe quelle fonction dans le cadre de l’expression typeaheads, ex .:

 

Comme vous pouvez le voir dans cet exemple, la méthode getStates($viewValue) (définie sur une étendue) peut être appelée et $viewValue correspond à une valeur entrée par un utilisateur.

Ce qui est le meilleur ici, c’est que votre fonction peut renvoyer une promesse et cette promesse sera correctement reconnue par la tête de phrase.

Il y a quelque temps, j’ai écrit un exemple de plunk qui montre comment utiliser les appels côté serveur pour fournir une complétion automatique. Vérifiez ce plunk qui montre la saisie semi-automatique pour toutes les villes des États-Unis (basée sur geobytes.com), où les villes sont interrogées en direct depuis un service JSONP:

http://plnkr.co/edit/t1neIS?p=preview

Consultez-le pour un exemple de travail sur le filtrage côté serveur (vous devez saisir au moins 3 caractères pour voir les résultats). Bien sûr, vous n’êtes pas limité aux appels jsonp, vous pouvez utiliser n’importe quelle méthode renvoyant une promesse.

Ne pas avoir le rep pour commenter ainsi poster comme une réponse (désolé!)

Si vous utilisez une version plus récente de bootstrap, vous devez append uib- en face de typeahead (comme ça)