2016-04-22 2 views
0

faceJAの検索方法によく似た、angularJSの検索機能を実装しようとしています。私が多くのチュートリアルから知ったことは、オートコンプリート・ディレクティブは既にロードされたデータに作用し、そこからフィルタリングすることです。
データ数が多い場合、すべてのデータを取り込むページロード時にサービスを呼び出すと、Webサイトが遅くなります。 オンデマンドでデータを読み込むオートコンプリートを作成する可能性はありますか?つまり、「dru」と入力するとonkeyup関数が呼び出され、キーイベントごとにサービスが呼び出され、必要に応じてデータがフェッチされます。 ありがとうangularJSのオンデマンドでオートコンプリート

+0

* * "オートコンプリートディレクティブ" *ですか?あなたが何を記述しているのかは、ソースデータとして約束を使って[UI Bootstrap * Typeahead *](https://angular-ui.github.io/bootstrap/#/typeahead)ディレクティブと一致します。 – Phil

+0

@Phil ...はい。しかし、データはすでに配列にロードされています。私が必要とするのは、必要に応じてデータを配列に取り込むことです。たとえば、「dru」と入力すると、「dru」と一致するすべてのレコードが配列に格納されます。 – Subhajit

+0

これは、**まさに**約束事に基づくデータによって行われるものです。 *非同期結果*の例を参照してください。オンデマンドでデータのために 'https://maps.googleapis.com/maps/api/geocode/json?address = what-you-typed'をクエリします** – Phil

答えて

0

はい、キーストロークの変更ごとにAPIを呼び出すことでこれを行うことができます。

<input type="text" ng-model="search" ng-change="fetchSearchResults(search)"> 

fetchSearchResults方法は、入力として与えられた文字の結果を取得、サーバーへのAPI呼び出しを行います。

希望しました。

関連する問題