使用 Algolia Instantsearch.js,我希望根据查询字符串中传递的 country_code 参数的值有选择地使用不同的 rangeSlider。
如果例如: country_code 是 'FR' 我想使用 total_area_meters 范围滑块,并使用另一个使用欧元的范围滑块。对于“英国”,我想使用 total_area_ft 和另一个使用磅的范围滑块。
虽然我正在等待(并希望)实现https://github.com/algolia/instantsearch.js/issues/753,但 Algolia 支持人员告诉我,可能可以使用帮助程序库:https://github.com/algolia/algoliasearch-helper-js让这个工作。
我有例如:尝试使用以下方法选择性地启用析取方面:
search.addWidget({
init: function (opts) {
// opts.helper contains the underlying algoliasearchHelper
if(detected_locale === 'fr'){
opts.helper.setQueryParameter('disjunctiveFacets', [
'total_area_meters','price_eur'
]);
//...
虽然这样做还不够:除其他问题外,页面上仍然存在滑块小部件,例如:需要 'total_area_feet 和 'price_gbp' 这会引发 javascript 错误 - 我需要以某种方式禁用它们,而且还有一些非常突兀的 url 需要被选择性地删除。
例如:如果我的分离方面是:total_area_meters:我得到一个这样的网址:
&nR[total_area_meters][>=][0]=135&nR[total_area_meters][<=][0]=770
- 当我有一个使用脚的国家代码时,需要删除它。
所以我的问题是:
有没有办法通过 js 以编程方式选择性地启用/禁用 Instantsearch.js 范围滑块小部件?(或者我可以以某种方式以编程方式设置它们的值/重置它们,使它们没有查询参数?)
如果上面的解决方案没有涵盖,是否有任何预构建的功能可供我清理 rangeslider url 参数?谢谢!