编程语言
首页 > 编程语言> > javascript – 使用algolia助手设置非Algolia url参数

javascript – 使用algolia助手设置非Algolia url参数

作者:互联网

我正在使用Algolia的Instantsearch.js,我想从我的脚本中更新非algolia相关的uri查询参数.我看到我可以使用帮助器设置查询和搜索:

search.helper.setQuery('myquery').search();

这有效,但我想知道我是否可以使用帮助器在查询字符串中设置一个额外的uri参数,该参数与Algolia查询无关,而是与我的站点的功能相关.

我看到在文档中有各种各样的函数来设置查询参数:
https://github.com/algolia/algoliasearch-helper-js#url-helpers
但它们似乎都不符合我的要求.你有没有关于我如何在执行上面的search.helper.setQuery之前将查询字符串更新为例如:“country_code”的值为例如:“FR”的建议?我理想地喜欢它,以便两个值同时在uri中设置.谢谢!

解决方法:

instantsearch.js不提供API来执行此操作,但它将保留由其他代码片段设置的每个参数.所以在你的情况下,如果URL已经有country_code,那么你已经完成了.

否则,如果您想从前端执行此操作,则可以使用浏览器的History API.此外,您可以在助手上使用getStateAsQueryString,它将序列化当前状态并允许您添加更多参数(例如country_code).但是,您需要小心使用与初始化即时搜索中的URL机制相同的参数(例如,哪些属性用于URL).如果你使用默认值,你应该是好的.

要替换当前的URL /历史状态,代码将如下所示:

window.history.replaceState(
  null,
  'Title',
  '?' + helper.getStateAsQueryString({
    moreAttributes: {
      country_code: 'fr'
    }
  }));

要更改参数的当前值,那么它将如下所示:

window.history.pushState(
  null,
  'Title',
  '?' + helper.getStateAsQueryString({
    moreAttributes: {
      country_code: 'de'
    }
  }));

标签:algolia,javascript
来源: https://codeday.me/bug/20190724/1526092.html