algolia instantsearch refinementList 项目在搜索其他内容时切换
algolia instantsearch refinementList item toogle when search for something else
我有一个问题,当你从 refinementList 中搜索 select 一个项目并且没有删除 selected 项目搜索其他东西时 selected 项目消失了由于列表的限制,我如何将其设置为始终显示 refinementList 的 selected 项?
如果没有 creating a custom widget,目前这是无法实现的。
currentRefinedValues widget 部分解决了这个问题,因为它列出了所有已检查的优化。
我已经打开 an issue on instantsearch.js's repo 关于这个,我认为这应该比 Whosebug 更适合这个请求。
实际上,在内部,已经优化的方面存在于列表中,但它们不够相关,无法显示在列表中。这可以通过调整 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:
我有一个问题,当你从 refinementList 中搜索 select 一个项目并且没有删除 selected 项目搜索其他东西时 selected 项目消失了由于列表的限制,我如何将其设置为始终显示 refinementList 的 selected 项?
如果没有 creating a custom widget,目前这是无法实现的。
currentRefinedValues widget 部分解决了这个问题,因为它列出了所有已检查的优化。
我已经打开 an issue on instantsearch.js's repo 关于这个,我认为这应该比 Whosebug 更适合这个请求。
实际上,在内部,已经优化的方面存在于列表中,但它们不够相关,无法显示在列表中。这可以通过调整 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: