当搜索其他内容时,algolia instantsearch refinementList项目toogle

时间:2016-03-30 21:02:12

标签: javascript search algolia instant

我有一个问题,当你进行搜索时,从refinementList中选择一个项目,而不删除所选项目搜索其他东西,所选项目由于其有限制而从列表中消失,我如何将其设置为始终显示refinementList的所选项目?

with the refinementList item selected

search for something else but the item is gone

2 个答案:

答案 0 :(得分:5)

如果没有creating a custom widget,目前无法做到这一点。

currentRefinedValues widget部分解决了这个问题,因为它列出了所有已检查的优化。

我已经打开了an issue on instantsearch.js's repo,我认为这应该比StackOverflow更适合此请求。

答案 1 :(得分:0)

实际上,在内部已经精炼的方面存在于列表中,但它们不足以在列表中显示。这可以通过调整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">'
    }
  })
);

注意使用'isRefined'作为sortBy的第一个谓词。这可以确保用户始终可以看到已经精炼的值。

这是新行为的GIF:

Fixed behavior