4

問題があります。refinementList からアイテムを選択する検索を行うと、選択したアイテムを削除せずに他の何かを検索すると、選択したアイテムが制限のためにリストから消えます。選択したアイテムを常に表示するように設定するにはどうすればよいですか?洗練リストのアイテム?

絞り込みリスト項目を選択した状態

何か他のものを探すが、そのアイテムはなくなっている

4

2 に答える 2

5

これは現在、カスタム ウィジェットを作成しないと実行できません。

ただし、currentRefinedValues ウィジェットは、チェックされたすべての絞り込みを一覧表示するため、この問題を部分的に解決します。

これについては、instantsearch.js のレポでイシューを開きました。このリクエストには、StackOverflow よりも適していると思います。

于 2016-03-30T21:31:42.397 に答える
1

実際には、内部的にすでに洗練されたファセットがリストに表示されていますが、それらはリストに表示されるほど関連性がありません。これは、refinementList の sortBy 引数を調整することで解決できます。使用している例では、次のように修正できます。

search.addWidget(
  instantsearch.widgets.refinementList({
    container: '#materials',
    attributeName: 'materials',
    operator: 'or',
    limit: 10,
    sortBy: ['isRefined', 'count:desc', 'name:asc'],
    templates: {
      item: facetTemplateCheckbox,
      header: '<div class="facet-title">Materials</div class="facet-title">'
    }
  })
);

sortBy の最初の述語として「isRefined」を使用していることに注意してください。これにより、すでに洗練された値が常にユーザーに表示されるようになります。

新しい動作の gif は次のとおりです。

修正された動作

于 2016-06-09T09:59:51.990 に答える