タイプ
標準
検索は、結果のセットを表示できます
カテゴリ
検索は、カテゴリごとに並べられたリモートコンテンツからの結果を表示できます
ローカル検索
検索は、静的なローカルソース内の結果を検索できます。
ローカルカテゴリ検索2.3の新機能
検索は、静的なローカルソース内のカテゴリ結果を検索できます。
状態
読み込み中
検索は、読み込みインジケーターを表示できます
バリエーション
無効2.3.1の新機能
検索は、現在操作できないことを示すことができます
流動的
検索では、結果がコンテナの幅を占めるようにすることができます
整列
検索では、結果を左または右のコンテナの端に揃えることができます
初期化
自動ルーティング
デフォルトでは、検索は名前付きのAPIエンドポイント「search」に自動的にルーティングされます
名前付きURL
カスタムAPI設定を指定して、URL、コールバック設定を調整したり、別のAPIアクションを指定したりできます。
ローカルオブジェクト
ローカル検索結果を使用すると、一致する値を検索するjavacriptオブジェクトリテラルの指定されたプロパティを検索できます
searchFields
設定を使用して、検索可能なフィールドを設定できます。ローカルオブジェクト検索では、標準の検索結果(カテゴリではない)のみを表示できます。
サーバー応答
標準
カテゴリ
結果の取得
ユニークID
結果にid
プロパティが含まれていない場合は、結果が返されるときに各結果に対してキーが自動的に生成されます。
IDは結果内の位置を使用して生成されます。たとえば、最初の要素はID 1
を受信し、最初のカテゴリ結果はID a1
を受信します。
次に、id
または検索結果のタイトルをget result(value)
で使用して、結果オブジェクトを返すことができます。
ビヘイビア
以下のすべての動作は、以下の構文を使用して呼び出すことができます。
動作 | 説明 |
---|---|
query (callback) | 検索入力に現在設定されている値を検索します |
display message(text, type) | 指定されたテキストとテンプレートマッチングタイプを使用して、検索結果にメッセージを表示します |
cancel query | 現在のリモート検索クエリをキャンセルします |
search local(query) | 指定されたクエリでローカルオブジェクトを検索し、結果を表示します |
has minimum characters | 最小文字数があるかどうか |
search remote(query, callback) | 指定されたクエリでリモートエンドポイントを検索し、結果を表示します |
search object(query, object, searchFields) | 指定されたクエリでオブジェクトを検索し、結果を返します |
cancel query | 現在のリモート検索リクエストをキャンセルします |
is focused | 検索が現在フォーカスされているかどうか |
is visible | 検索結果が表示されているかどうか |
is empty | 検索結果が空かどうか |
get value | 現在の検索値を返します |
get result(value) | 検索されたタイトルまたはIDに一致するJSONオブジェクトを返します(上記参照) |
set value(value) | 検索入力を指定された値に設定します |
read cache(query) | クエリのキャッシュされた結果を読み取ります |
clear cache(query) | キャッシュから値をクリアします。パラメータが渡されない場合は、すべてのキャッシュをクリアします |
write cache(query) | クエリのキャッシュされた結果を書き込みます |
add results(html) | HTMLを結果に追加して表示します |
show results(callback) | 結果コンテナを表示します |
hide results(callback) | 結果コンテナを非表示にします |
generate results(response) | settings.template で指定されたパーサーを使用して結果を生成します |
destroy | すべてのイベントを削除します |
例
異なるレスポンスフィールドの使用
検索は非常に特定なAPIレスポンスを予期しますが、fields
パラメータを使用すると、サーバーレスポンスから表示されるフィールドへのマッピングを簡単に変更できます。
API設定の使用
APIは、onResponse
というコールバックを提供します。これは、サードパーティAPIを検索に必要なサーバーレスポンスに一致するように再構築するために使用できます。
また、mockResponseAsync
を使用して、検索を満たすためのカスタムバックエンドを使用することもできます。
検索
動作
デフォルト | 説明 | |
---|---|---|
apiSettings |
{ action: 'search' }
|
API呼び出しの設定。 |
minCharacters | 1 | 結果をクエリするための最小文字数 |
searchOnFocus | true | フォーカス時に検索で結果を表示するかどうか(最小文字数とも一致する必要があります) |
transition | fade | メニューの表示/非表示のアニメーションに使用する名前付きトランジション。フェードとスライドダウンは、uiトランジションを含めなくても利用できます |
duration | 300 | アニメーションイベントの期間 |
maxResults | 7 | ローカル検索と単純検索を使用する場合に表示する最大結果数、カテゴリ検索の最大カテゴリ数 |
cache | true | サーバーへの再クエリを回避するために、結果をローカルにキャッシュします |
source | false | ローカルに検索されるJavaScriptオブジェクトを指定します |
selectFirstResult | false | 検索後に検索が最初の検索結果を自動的に選択するかどうか |
showNoResults | false | 結果が見つからない場合に「結果なし」メッセージを表示するかどうか。(これらのメッセージは、以下で指定されたtemplate オブジェクトを使用して変更できます) |
fullTextSearch | 'exact' | "true"を指定すると、ファジーフルテキスト検索が使用され、"exact"に設定すると、文字列のどこかに正確な検索が一致するように強制されます。false に設定すると、文字列の先頭にのみ一致します。(この設定は以前はsearchFullText と呼ばれていました。) |
fields |
fields: { categories : 'results', // カテゴリの配列(カテゴリビュー) categoryName : 'name', // カテゴリ名(カテゴリビュー) categoryResults : 'results', // 結果の配列(カテゴリビュー) description : 'description', // 結果の説明 image : 'image', // 結果の画像 price : 'price', // 結果の価格 results : 'results', // 結果の配列(標準) title : 'title', // 結果のタイトル action : 'action', // 「詳細を表示」オブジェクト名 actionText : 'text', // 「詳細を表示」テキスト actionURL : 'url' // 「詳細を表示」url }
|
APIまたはsource のいずれかを使用して、表示コンテンツをJSONプロパティにマッピングするリスト。 |
searchFields |
[ 'title', 'description' ]
|
検索されるローカルソースオブジェクト内のオブジェクトプロパティを指定します |
hideDelay | 0 | 検索のフォーカスが外れた後、結果を非表示にするまでの遅延 |
searchDelay | 100 | 入力変更時に結果をクエリするまでの遅延 |
easing | easeOutExpo | フォールバックJavaScriptアニメーションを使用する場合のイージング方程式 |
コールバック
コンテキスト | 説明 | |
---|---|---|
onSelect(result, response) | モジュール | ユーザーによる要素選択時のコールバック。最初のパラメータには、その要素のフィルタリングされたレスポンス結果が含まれます。関数は、デフォルトのアクション(検索結果を閉じて値を選択すること)を防ぐためにfalseを返す必要があります。 |
onResultsAdd(html) | モジュール | 結果にHTMLを追加するための要素テンプレートの処理後のコールバック。関数は、デフォルトのアクションを防ぐためにfalseを返す必要があります。 |
onSearchQuery(query) | モジュール | 検索クエリのコールバック |
onResults(response) | モジュール | サーバーレスポンスのコールバック |
onResultsOpen | 結果要素 | 結果が開かれたときのコールバック |
onResultsClose | 結果要素 | 結果が閉じられたときのコールバック |
テンプレート
これらのテンプレートは、検索結果のHTML構造を生成するために使用されます
関数 | |
---|---|
templates |
$.fn.search.settings.templates : { escape: function(string) { // 挿入された結果のエスケープされた文字列を返します }, message: function(message, type) { // 指定されたメッセージとタイプのメッセージのhtmlを返します }, category: function(response) { // カテゴリ結果のhtmlを返します }, standard: function(response) { // 標準結果のhtmlを返します } }
|
モジュール
これらの設定はすべてのモジュールにネイティブであり、コンポーネントがコンテンツをDOM属性に結び付ける方法と、モジュールのデバッグ設定を定義します。
デフォルト | 説明 | |
---|---|---|
name | 検索 | ログステートメントで使用される名前 |
namespace | search | イベント名前空間。モジュールのティアダウンが要素に添付された他のイベントに影響を与えないようにします。 |
regExp |
regExp: { escape : /[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, beginsWith : '(?:\s|^)' }
|
マッチングに使用される正規表現 |
selector |
selector : { prompt : '.prompt', searchButton : '.search.button', results : '.results', category : '.category', result : '.result' }
|
モジュールの部分を見つけるために使用されるセレクター |
metadata |
metadata: { cache : 'cache', results : 'results' }
|
内部で使用されるHTML5メタデータ属性 |
className |
className: { active : 'active', empty : 'empty', focus : 'focus', loading : 'loading', pressed : 'down' }
|
要素の状態を判断するために使用されるクラス名 |
silent | False | 他のデバッグ設定に関係なく、エラーメッセージを含むすべてのコンソール出力を抑制します。 |
debug | false | コンソールへのデバッグ出力 |
performance | true | パフォーマンスメトリクスを含むconsole.table 出力を表示します |
verbose | false | デバッグ出力には、すべての内部動作が含まれます |
errors |
error : { source : '検索できません。ソースが使用されておらず、Semantic APIモジュールが含まれていません', noResults : '検索結果がありませんでした', logging : 'デバッグログでエラーが発生しました。終了します。', noTemplate : '有効なテンプレート名が指定されていません。', serverError : 'サーバーのクエリに問題がありました。', maxResults : 'maxResults設定を使用するには、結果が配列である必要があります', method : '呼び出したメソッドは定義されていません。' },
|