クエリに入力されたテキストに基づいて「条件付きオートコンプリート」を実行できるようにしたいと考えています。例えば:
ユーザーは次のことができます。
「f」と入力すると、すべてのフィールド名「field_name」、「field_age」の候補名が候補として表示されます。
次に、ユーザーが「field_name」を入力または選択してからボックスに「=」を入力すると、[Albert、Bob、Clarisse] などの「field_name」に固有のデータの特定のリストが要求されます。
次にユーザーが " " (スペース) を入力すると、オプションがリモートで取得またはアクセスされます ["AND", "OR", "==", "!=". ユーザーが「==」を選択または入力すると、それまでの現在の文字列「field_name == ' '」に基づいて、リスト [Albert, Bob, Clarisse] が使用されます。
ユーザーが代わりに field_age... と入力した場合、年齢 [7,3,6] のリストまたは json オブジェクトに対してリクエストが送信され、ポップアップが表示されます。検索ボックスへの入力例は次のとおりです。
field_name = 'アルバート' AND field_age = '7'
ライブラリ typeahead.js を見たことがありますが、「必要に応じてデータ」(この場合は名前と年齢) ではなく、すべてのデータを自動補完するように見えるだけです。その理由は、名前が巨大になる可能性があるためです。多くの名前があり、かなり大きなダウンロードになるため、利用可能なすべての可能なフィールドのすべての値をクライアントにダウンロードさせたくありません)。
これを行う最善の方法は何ですか?typehead.js はこれをサポートしていますか、それとも別のライブラリの方が優れていますか?