問題タブ [bloodhound]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - 2 番目の変数を使用して typehead.js で結果をフィルタリングするにはどうすればよいですか?
Typeahead.js を使用して結果をフィルタリングしようとしています。現在、activity_title というフィールドを使用して結果をフィルター処理できます。これはうまくいきます。
2 番目の値で結果をフィルタリングするにはどうすればよいですか? この場合、特定の値の activity_level を持つ結果のみを選択したいと思います。ブラッドハウンドの初期化にハードコーディングするのではなく、タイプアヘッドが初期化されるときにこれを設定する必要があります(たとえば、使用したくないurl: 'api/activity/&range=1,3'
)
リモートでアクセスする次の有効な JSON があります。
次のように Bloodhound インスタンスをセットアップしました。
Typeahead.js を使用して、入力時にデータを検索します。
これは、Stackoverflow などのいくつかの回答からまとめられています。どんな助けでも大歓迎です。
sorting - 正確な入力を先頭にして先行入力候補を並べ替えます
Twitter typeahead.js 0.10.5 を提案エンジンとして使用しています。それはうまく機能しますが、1 つの例外を除いて、提案のリストを思いどおりに並べ替えることができません。
例として:
「必要」と入力すると、配列内の位置順に並べられた提案が得られますが、入力順に並べたいと思います。つまり、順序は「必要」、「必要」、「必要なすべて」である必要があります... 「he」と入力すると、「he needs」、「all he needs」、「all I need」などになります。
Bloodhound にソーター オプションがあることは知っていますが、この特定の状況でそれを使用する方法がわかりません。
angularjs - カスタム テンプレート内の Typeahead - Bloodhound 提案オブジェクト プロパティにアクセスする方法
Typeahead-Bloodhound バンドルを使用して、カスタム提案テンプレートを作成しました。テンプレートが変数をコンパイルするために呼び出しているオブジェクトを把握しようとしています。{{}} テンプレートの代わりにアンダースコアを使用しています。
_.compile( '<p><strong><%=PN%></strong> <span class="tt-suggestion-etc"> <%=A2 %>| LAT: <%=Y%> LON: <%=X%></span></p>' )
これが標準の Typehead ブラケットの場合:
compile( '<p><strong>{{PN}}</strong> <span class="tt-suggestion-etc"> {{A2}}| LAT: {{Y}} LON: {{X}}</span></p>' )
次のように、アンダースコアの JavaScript を介して実際のオブジェクト プロパティにアクセスできるようにしたいと考えています。
_.compile( '<p><strong><%=PN%></strong> <span class="tt-suggestion-etc"> <% if(someObj.someProp !== undefined ){ // do something }else{ //do something else } %>| LAT: <%=Y%> LON: <%=X%></span></p>')
javascript - 結果を一致させるだけでなく、すべての結果を表示する typehead.js
入力したクエリに一致する結果のみを返すように typeahead.js を取得するのに問題があります。たとえば、会社の検索バーに「Facebook」と入力すると、すべての会社 (「Yahoo」、「Google」など) が返されますが、これらのほとんどはクエリに一致しません。サーバー側のデータ処理は行っていません。私の datumTokenizer 関数はこのフィルタリングを処理する必要がありますか?
また、クエリを変更するたびに、データごとに filter() 関数が入力されることに気付きました。したがって、クエリを「G」から「Go」に変更すると、filter: function (company_list) の console.log() ステートメントが 3000 回出力されます。
これが私のコードです:
そして、私のURLが返すものの例:
プリフェッチがまったく機能しないため、リモートを使用しています。[object Object] という提案だけが表示されますが、これは意味がありません。prefetch/remote を使用して、初期化時に .json ファイル全体をロードし、サーバーにそれ以上の要求を行わないようにしたいと考えています。したがって、プリフェッチは私にとってより良いオプションだと思います(小さなファイル、77kB)が、まったく機能していません。
助けてくれてありがとう!
javascript - Microsoft OData API で Twitter の typeahead.js を使用するにはどうすればよいですか?
CRM アプリケーションから JSON データを取得するための Web アプリケーションを作成しているときに、問題が発生しました。
私がやりたいことは、Twitter の typeahead.jsプラグインを使用して、CRM アプリケーションから顧客情報をリモートでフェッチすることです。Microsoft は、JSON データを使用して通信する方法を提供しています。彼らはそれを OData と呼んでいます。ただし、これは通常の JSON 応答とは異なります。これが、先行入力プラグインのセットアップに問題がある理由です。
API URL に GET リクエストを送信すると、次のレスポンスが返されます。
ここで質問があります: Twitter の typehead プラグインをこのデータ構造で動作するように設定するにはどうすればよいですか?
Name
提案を表示するときに、JSON 応答からの値が必要です。AccountId
そして、提案が選択されたときに関連する値を取得したいと考えています。
これまでのコードで得たものは次のとおりです。
HTML:
JavaScript: (js/global.js)
ただし、コードが機能しません。入力フィールドの下に「未定義」というテキストが表示されるだけです。私datumTokenizer
またはdisplayKey
参照が間違っている疑いがあります。を完全には理解していませんdatumTokinizer
。だから誰かがそれについて私を啓発することができれば、私は感謝します:)
javascript - 「リモート」が使用されている場合、Typeahead と Bloodhound は無関係な提案を表示します
リモート オプションで Typeahead/Bloodhound を使用する場合、ローカル/プリフェッチの結果が「制限」(5) を下回ると、表示される提案は入力に関連しません。結果セットの上から5つまで表示されているようです。
写真: 「愛」は予想される結果であり、他のすべては無関係です:
私のコード:
javascript - Typeahead/Bloodhound ですべての一致結果を表示できない
会社の検索に Typeahead/Bloodhoud を使用していますが、オートコンプリート セクションに十分な一致が表示されません。
- - - - - 探す - - - - -
制限が 5 であるため、少なくとも 5 つの結果が表示されるはずです。
---------- Ajax レスポンス ----------
Typeahead JS
すべての結果が期待どおりに表示されるようにするにはどうすればよいですか? ドキュメント/ソース コードを調べて、見落としたはずのオプションを探していて、思いつくのに苦労していました。