当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《使用algolia助手设置非Algoliaurl参数》经验,为你挑选了1个好方法。

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

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

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

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



1> bobylito..:

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'
    }
  }));

推荐阅读
mobiledu2402851323
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有